# algorithm-primer
>
> algorithm primer - 算法基础、Leetcode编程、剑指offer
>
# 目录
<!-- TOC -->
- [算法基础](#summary/algorithm-summary.md)
- [Leetcode编程](#Leetcode编程)
* [**Leetcode编程源码**](leetcode/src/main/java/leetcode)
* [Top 100 Liked Questions](#Top-100-Liked-Questions)
* [Leetcode all questions](#All-Questions)
* [Leetcode Summary](summary/leetcode-summary.md)
* [Leetcode Category](#Leetcode-Category)
* [数组与矩阵](#数组与矩阵)
* [链表](#链表)
* [栈与队列](#栈与队列)
* [字符串](#字符串)
* [哈希表](#哈希表)
* [树](#树)
* [二叉树](#二叉树)
* [二叉搜索树](#二叉搜索树)
* [字典树](#字典树)
* [图](#图)
* [位运算](#位运算)
* [排序](#排序)
* [排序应用](#排序应用)
* [拓扑排序](#拓扑排序)
* [二分查找](#二分查找)
* [双指针](#双指针)
* [贪心](#贪心)
* [分治](#分治)
* [搜索](#搜索)
* [BFS](#BFS)
* [DFS](#DFS)
* [回溯](#回溯)
* [递归与动态规划](#递归与动态规划)
- [剑指offer](#剑指offer)
* [**剑指offerV2源码**](interview-for-offer/src/main/java/offerV2)
* [剑指offer V2](#剑指offer-V2)
* [剑指offer V1](#剑指offer-V1)
* [剑指offer Summary](summary/interviewforoffer-summary.md)
* [剑指offer V2分类](#剑指offer-V2分类)
* [数组](#剑指offer-数组与哈希表)
* [链表](#剑指offer-链表)
* [二叉树](#剑指offer-二叉树)
* [栈与队列](#剑指offer-栈与队列)
* [字符串](#剑指offer-字符串)
* [位运算](#剑指offer-位运算)
* [递归与动态规划](#剑指offer-递归与动态规划)
- [参考](#参考)
<!-- /TOC -->
---
# Leetcode编程
## Leetcode Category
### 栈与队列
| No | Problem | Solution | Difficulty | Tag |
|------|---------|----------|------------|------|
| 20 | 有效的括号 Valid Parentheses | [Java](leetcode/src/main/java/leetcode/_0020_ValidParentheses.java) | Easy | |
| 94 | 二叉树的中序遍历 Binary Tree Inorder | [Java](leetcode/src/main/java/leetcode/_0094_BinaryTreeInorderTraversal.java) | Medium | |
| 155 | 最小栈 Min Stack | [Java](leetcode/src/main/java/leetcode/_0155_MinStack.java) | Easy | |
| 394 | 字符串编码 Decode String | [Java](leetcode/src/main/java/leetcode/_0394_DecodeString.java) | Medium | |
### 链表
| No | Problem | Solution | Difficulty | Tag |
|------|---------|----------|------------|------|
| 2 | 两数相加 Add Two Numbers | [Java](leetcode/src/main/java/leetcode/_0002_AddTwoNumbers.java) | Medium | |
| 19 | 删除链表倒数第N个节点 Remove Nth Node From End of List | [Java](leetcode/src/main/java/leetcode/_0019_RemoveNthNodeFromEndOfList.java) | Medium | |
| 21 | 合并两个有序链表 Merge Two Sorted Lists | [Java](leetcode/src/main/java/leetcode/_0021_MergeTwoSortedLists.java) | Easy | |
| 141 | 判断链表是是否存在环 Linked List Cycle | [Java](leetcode/src/main/java/leetcode/_0141_LinkedListCycle.java) | Easy | |
| 142 | 环形链表II Linked List Cycle II | [Java](leetcode/src/main/java/leetcode/_0142_LinkedListCycleII.java) | Medium | |
| 148 | 排序链表 Sort List | [Java](leetcode/src/main/java/leetcode/_0148_SortList.java) | Medium | |
| 160 | 相交链表 Intersection of Two Linked Lists | [Java](leetcode/src/main/java/leetcode/_0160_IntersectionOfTwoLinkedLists.java) | Easy | |
| 206 | 反转链表 Reverse Linked List | [Java](leetcode/src/main/java/leetcode/_0206_ReverseLinkedList.java) | Easy | |
| 234 | 回文链表 Palindrome Linked List | [Java](leetcode/src/main/java/leetcode/_0234_PalindromeLinkedList.java) | Easy | |
### 数组与矩阵
| No | Problem | Solution | Difficulty | Tag |
|------|---------|----------|------------|------|
| 105 | Construct Binary Tree from Preorder and Inorder Traversal | [Java](leetcode/src/main/java/leetcode/_0105_ConstructBinaryTreeFromPreorderAndInorderTraversal.java) | Medium | |
| 121 | Best Time to Buy and Sell Stock | [Java](leetcode/src/main/java/leetcode/_0121_BestTimeToBuyAndSellSock.java) | Easy | |
| 152 | Maximum Product Subarray | [Java](leetcode/src/main/java/leetcode/_0152_MaximumProductSubarray.java) | Medium | |
| 169 | Majority Element | [Java](leetcode/src/main/java/leetcode/_0169_MajorityElement.java) | Easy | |
| 238 | Product of Array Except Self | [Java](leetcode/src/main/java/leetcode/_0238_ProductOfArrayExceptSelf.java) | Medium | |
| 283 | Move Zeroes | [Java](leetcode/src/main/java/leetcode/_0283_MoveZeroes.java) | Easy | |
| 287 | Find the Duplicate Number | [Java](leetcode/src/main/java/leetcode/_0287_FindTheDuplicateNumber.java) | Medium | |
| 448 | Find All Numbers Disappeared in an Array | [Java](leetcode/src/main/java/leetcode/_0448_FindAllNumbersDisappearedInAnArray.java) | Easy | |
| 560 | Subarray Sum Equals K | [Java](leetcode/src/main/java/leetcode/_0560_SubarraySumEqualsK.java) | Medium | |
| 581 | Shortest Unsorted Continuous Subarray | [Java](leetcode/src/main/java/leetcode/_581_ShortestUnsortedContinuousSubarray.java) | Easy | |
### 树
#### 二叉树
| No | Problem | Solution | Difficulty | Tag |
|------|---------|----------|------------|------|
| 94 | 二叉树的中序遍历 Binary Tree Inorder | [Java](leetcode/src/main/java/leetcode/_0094_BinaryTreeInorderTraversal.java) | Medium | |
| 101 | 对称二叉树 Symmetric Tree | [Java](leetcode/src/main/java/leetcode/_0101_SymmetricTree.java) | Easy | |
| 102 | 二叉树的层次遍历 Binary Tree Level Order Traversal | [Java](leetcode/src/main/java/leetcode/_0102_BinaryTreeLevelOrderTraversal.java) | Medium | |
| 104 | 二叉树的最大深度 Maximum Depth of Binary Tree | [Java](leetcode/src/main/java/leetcode/_0104_MaximumDepthOfBinaryTree.java) | Easy | |
| 105 | 从前序与中序遍历序列构造二叉树 Construct Binary Tree from Preorder and Inorder Traversal | [Java](leetcode/src/main/java/leetcode/_0105_ConstructBinaryTreeFromPreorderAndInorderTraversal.java) | Medium | |
| 114 | 二叉树展开为链表 Flatten Binary Tree to Linked List | [Java](leetcode/src/main/java/leetcode/_0114_FlattenBinaryTreeToLinkedList.java) | Medium | |
| 124 | 二叉树中的最大路径和 Binary Tree Maximum Path Sum | [Java](leetcode/src/main/java/leetcode/_0124_BinaryTreeMaximumPathSum.java) | Hard | |
| 226 | 翻转二叉树 Invert Binary Tree | [Java](leetcode/src/main/java/leetcode/_0226_InvertBinaryTree.java) | Easy | |
| 236 | 二叉树的最近公共祖先 Lowest Common Ancestor of a Binary Tree | [Java](leetcode/src/main/java/leetcode/_0236_LowestCommonAncestorOfABinaryTree.java) | Medium | |
| 257 | 二叉树路径 Binary Tree Paths | [Java](leetcode/src/main/java/leetcode/_0257_BinaryTreePaths.java) | Easy | |
| 337 | 打家劫舍 III House Robber III | [Java](leetcode/src/main/java/leetcode/_0337_HouseRobberIII.java) | Medium | |
| 437 | 路径总和 III Path Sum III | [Java](leetcode/src/main/java/leetcode/_0437_PathSumIII.java) | Easy | |
| 543 | 二叉树的直径 Diameter of Binary Tree | [Java](leetcode/src/main/java/leetcode/_0543_DiameterOfBinaryTree.java) | Easy | |
| 617 | 合并二叉树 Merge Two Binary Trees | [Java](leetcode/src/main/java/leetcode/_0617_MergeTwoBinaryTrees.java) | Easy | |
#### 二叉搜索树
| No | Problem | Solution | Difficulty | Tag |
|------|---------|----------|------------|------|
| 96 | 不同的二叉搜索树 Unique Binary Search Trees | [Java](leetcode/src/main/java/leetcode/_0096_UniqueBinarySearchTrees.java) | Medium | |
| 98 | 验证二叉搜索树 Validate Binary Search Tree | [Java](leetcode/src/m
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
Java是一种高性能、跨平台的面向对象编程语言。它由Sun Microsystems(现在是Oracle Corporation)的James Gosling等人在1995年推出,被设计为一种简单、健壮、可移植、多线程、动态的语言。Java的主要特点和优势包括以下几个方面: 跨平台性(Write Once, Run Anywhere): Java的代码可以在不同的平台上运行,只需编写一次代码,就可以在任何支持Java的设备上执行。这得益于Java虚拟机(JVM),它充当了代码和底层硬件之间的中介。 面向对象: Java是一种纯粹的面向对象编程语言,支持封装、继承和多态等面向对象的概念。这使得Java编写的代码更加模块化、可维护和可扩展。 多线程支持: Java内置了对多线程的支持,允许程序同时执行多个任务。这对于开发需要高并发性能的应用程序(如服务器端应用、网络应用等)非常重要。 自动内存管理(垃圾回收): Java具有自动内存管理机制,通过垃圾回收器自动回收不再使用的对象,使得开发者不需要手动管理内存,减轻了程序员的负担,同时也减少了内存泄漏的风险。
资源推荐
资源详情
资源评论











格式:pdf 资源大小:24.9MB 页数:127




















收起资源包目录





































































































共 426 条
- 1
- 2
- 3
- 4
- 5
资源评论


JJJ69
- 粉丝: 6461
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 基于计算机视觉的小车目标检测与动态跟踪技术研究 (注:共 16 字,核心动作 “检测”“跟踪” 及对象 “小车” 均保留,通过 “基于计算机视觉”“动态”“技术研究” 补充表述维度,确保原意不变且满足
- 基于船舶的目标检测技术研究项目
- MATLAB中基于YALMIP的微电网优化调度模型:含蓄电池与市场购售电约束的总费用最小化 · 微电网
- 基于船舶目标开展精准识别与检测的技术项目
- 多相流相对渗透率计算中相场与水平集方法的质量守恒策略实现
- 基于DSP28035的60KW三相光伏并网逆变器IGBT驱动电路设计与优化 开关损耗优化
- 三相PWM整流器并联仿真及零序环流抑制算法的研究与应用
- 触摸屏直接控制变频器:昆仑通泰TPC与安川V1000及其他品牌变频器的485端口通信实现 宝典
- 多供区交直流潮流模型构建与求解:基于改进IEEE39节点系统的柔性互联算法研究 实战版
- 基于 OpenCV 原生库实现目标检测与文本检测的方法
- 基于C代码的异步电机矢量控制算法仿真与双闭环解耦控制实现高精度转速调节
- 本仓库存有目标检测 YOLO 系列及改进模块代码,欢迎自取
- Matlab Simulink中基于MRAS的直流母线电压传感器容错控制方法研究:包括设置电压传感器断路与漂移故障,并利用冗余开关进行容错切换
- 基于Verilog的UART IP核心开发与FPGA移植:从编码到仿真的全流程解析
- 风光柴储混合微电网中储能电池系统的MATLAB仿真研究:实现互补能量管理
- 汇川通IT7000触摸屏标准模板程序解析:提升编程效率与稳定性的关键
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
