https://github.com/Gethin1990/leetcode_101
算法思想
分治
贪心算法
- 分发饼干|455|
- 分发糖果|135|
- 五重叠区间|435|
理论基础
简单题目
- 分发饼干|455|
- K次取反后最大化的数组和|1005|
- 柠檬水找零|860|
序列问题
股票
- 买卖股票的最佳时机|122|
- 买卖股票的最佳时机含手续费|714|
两个维度权衡问题
区间问题
- 跳跃游戏|55|
- 跳跃游戏2|45|
- 用最少数量的箭引爆气球|452|
- 五重叠区间|435|
- 划分字母区间|763|
- 合并区间|56|
其他问题
- 最大子序和|53|
- 加油站|134|
- 监控二叉树|968|
动态规划
基础题目
- 斐波那契数|509|
- 爬楼梯|70|
- 适用最小花费爬楼梯|746|
- 不同路径|62|
- 不同路径2|63|
- 整数拆分|343|
- 不同的二叉搜索树|96|
背包问题
01背包
- 分割等和子集|416|
- 最后一块石头的重量2|1049
- 目标和|494|
- 一和零|474|
完全背包
- 零钱兑换2|518|
- 组合总和5|377|
- 爬楼梯|70|
- 零钱兑换|322|
- 完全平方数|279|
- 单词拆分|139|
多重背包
打家劫舍
- 打家劫舍|198|
- 打家劫舍2|213|
- 打家劫舍3|337|
股票问题
- 买卖股票的最佳时机|121|
- 买卖股票的最佳时机|122|
- 买卖股票的最佳时机|123|
- 买卖股票的最佳时机|188|
- 最佳买卖股票时机含冷冻期|309
- 最佳买卖股票时机含手续费|714|
子序列问题
不连续子序列
- 最长上升子序列|300|
- 最长公共子序列|1143|
- 不相交的线|1035|
连续子序列
- 最长连续递增序列|674|
- 最长重复子数组|718|
- 最大子序和|53|
编辑距离
- 判断子序列|392|
- 不同子序列|115|
- 两个字符串的删除操作|583|
- 编辑距离|72|
回文
回溯算法
组合
- 组合|77|
- 电话号码的字母组合|17|
- 组合总和|39|
- 组合总和2|40|
- 组合总和3|216|
分割
子集
排列
棋盘问题
其他
深度优先
分支界限法
广度优先
二分查找
- Sqrt(x)|69|
- Find First and Last Position of Element in Sorted Array|34|
- Search in Rotated Sorted Array II|81|
排序
冒泡排序
选择排序
插入排序
归并排序
堆排序
双指针
- Two Sum II - Input array is sorted|167|
- Merge Sorted Array |88|
- Linked List Cycle II|142|
- MinimumWindow Substring|76|
数学问题
位运算