diff --git a/README.md b/README.md index 993d7c6df8..0dd54a5e1e 100644 --- a/README.md +++ b/README.md @@ -102,9 +102,9 @@ ## 数组 1. [数组过于简单,但你该了解这些!](./problems/数组理论基础.md) -2. [数组:704.二分查找](./problems/0704.二分查找.md) -3. [数组:27.移除元素](./problems/0027.移除元素.md) -4. [数组:977.有序数组的平方](./problems/0977.有序数组的平方.md) +2. ☑️ [数组:704.二分查找](./problems/0704.二分查找.md) +3. ☑️ [数组:27.移除元素](./problems/0027.移除元素.md) +4. ☑️ [数组:977.有序数组的平方](./problems/0977.有序数组的平方.md) 5. [数组:209.长度最小的子数组](./problems/0209.长度最小的子数组.md) 6. [数组:区间和](./problems/kamacoder/0058.区间和.md) 7. [数组:开发商购买土地](./problems/kamacoder/0044.开发商购买土地.md) @@ -113,68 +113,69 @@ ## 链表 -1. [关于链表,你该了解这些!](./problems/链表理论基础.md) -2. [链表:203.移除链表元素](./problems/0203.移除链表元素.md) -3. [链表:707.设计链表](./problems/0707.设计链表.md) -4. [链表:206.翻转链表](./problems/0206.翻转链表.md) -5. [链表:24.两两交换链表中的节点](./problems/0024.两两交换链表中的节点.md) -6. [链表:19.删除链表的倒数第 N 个结点](./problems/0019.删除链表的倒数第N个节点.md) -7. [链表:链表相交](./problems/面试题02.07.链表相交.md) -8. [链表:142.环形链表](./problems/0142.环形链表II.md) +1. ☑️ [关于链表,你该了解这些!](./problems/链表理论基础.md) +2. ☑️☑️ ⭐️ [链表:203.移除链表元素](./problems/0203.移除链表元素.md) +3. ☑️ ⭐️ [链表:707.设计链表](./problems/0707.设计链表.md) +4. ☑️ ⭐️ [链表:206.翻转链表](./problems/0206.翻转链表.md) +5. ☑️ ⭐️ [链表:24.两两交换链表中的节点](./problems/0024.两两交换链表中的节点.md) +6. ☑️ ⭐️ [链表:19.删除链表的倒数第 N 个结点](./problems/0019.删除链表的倒数第N个节点.md) +7. ☑️ ⭐️ 觉得很巧妙 [链表:链表相交](./problems/面试题02.07.链表相交.md) +8. ☑️ ⭐️ [链表:142.环形链表](./problems/0142.环形链表II.md) 9. [链表:总结篇!](./problems/链表总结篇.md) ## 哈希表 1. [关于哈希表,你该了解这些!](./problems/哈希表理论基础.md) -2. [哈希表:242.有效的字母异位词](./problems/0242.有效的字母异位词.md) -3. [哈希表:1002.查找常用字符](./problems/1002.查找常用字符.md) -4. [哈希表:349.两个数组的交集](./problems/0349.两个数组的交集.md) -5. [哈希表:202.快乐数](./problems/0202.快乐数.md) -6. [哈希表:1.两数之和](./problems/0001.两数之和.md) -7. [哈希表:454.四数相加II](./problems/0454.四数相加II.md) -8. [哈希表:383.赎金信](./problems/0383.赎金信.md) -9. [哈希表:15.三数之和](./problems/0015.三数之和.md) -10. [双指针法:18.四数之和](./problems/0018.四数之和.md) +2. ☑️ [哈希表:242.有效的字母异位词](./problems/0242.有效的字母异位词.md) +3. ☑️ [哈希表:1002.查找常用字符](./problems/1002.查找常用字符.md) +4. ☑️ [哈希表:349.两个数组的交集](./problems/0349.两个数组的交集.md) +5. ☑️ [哈希表:202.快乐数](./problems/0202.快乐数.md) +6. ☑️ [哈希表:1.两数之和](./problems/0001.两数之和.md) +7. ☑️ ⭐️ [哈希表:454.四数相加II](./problems/0454.四数相加II.md) +8. ☑️ [哈希表:383.赎金信](./problems/0383.赎金信.md) +9. ☑️ ⭐️⭐️⭐️ [哈希表:15.三数之和](./problems/0015.三数之和.md) +10. ☑️ ⭐️⭐️⭐️ [双指针法:18.四数之和](./problems/0018.四数之和.md) 11. [哈希表:总结篇!](./problems/哈希表总结.md) ## 字符串 -1. [字符串:344.反转字符串](./problems/0344.反转字符串.md) -2. [字符串:541.反转字符串II](./problems/0541.反转字符串II.md) -3. [字符串:替换数字](./problems/kamacoder/0054.替换数字.md) -4. [字符串:151.翻转字符串里的单词](./problems/0151.翻转字符串里的单词.md) -5. [字符串:右旋字符串](./problems/kamacoder/0055.右旋字符串.md) +1. ☑️ [字符串:344.反转字符串](./problems/0344.反转字符串.md) +2. ☑️ [字符串:541.反转字符串II](./problems/0541.反转字符串II.md) +3. [字符串:替换数字](./problems/kama54.替换数字.md) +4. ☑️ [字符串:151.翻转字符串里的单词](./problems/0151.翻转字符串里的单词.md) +5. [字符串:右旋字符串](./problems/kama55.右旋字符串.md) 6. [帮你把KMP算法学个通透](./problems/0028.实现strStr.md) -8. [字符串:459.重复的子字符串](./problems/0459.重复的子字符串.md) -9. [字符串:总结篇!](./problems/字符串总结.md) +7. [字符串:459.重复的子字符串](./problems/0459.重复的子字符串.md) +8. [字符串:总结篇!](./problems/字符串总结.md) ## 双指针法 -双指针法基本都是应用在数组,字符串与链表的题目上 +双指针法基本都是应用在数组,字符串与链表的题目上 +这些上面基本都做过,归纳为双指针 -1. [数组:27.移除元素](./problems/0027.移除元素.md) -2. [字符串:344.反转字符串](./problems/0344.反转字符串.md) -3. [字符串:替换数字](./problems/kamacoder/0054.替换数字.md) -4. [字符串:151.翻转字符串里的单词](./problems/0151.翻转字符串里的单词.md) -5. [链表:206.翻转链表](./problems/0206.翻转链表.md) -6. [链表:19.删除链表的倒数第 N 个结点](./problems/0019.删除链表的倒数第N个节点.md) +1. ☑️ [数组:27.移除元素](./problems/0027.移除元素.md) +2. ☑️ [字符串:344.反转字符串](./problems/0344.反转字符串.md) +3. [字符串:替换数字](./problems/kama54.替换数字.md) +4. ☑️ 他的方法好麻烦 [字符串:151.翻转字符串里的单词](./problems/0151.翻转字符串里的单词.md) +5. ☑️ [链表:206.翻转链表](./problems/0206.翻转链表.md) +6. ☑️ [链表:19.删除链表的倒数第 N 个结点](./problems/0019.删除链表的倒数第N个节点.md) 7. [链表:链表相交](./problems/面试题02.07.链表相交.md) -8. [链表:142.环形链表](./problems/0142.环形链表II.md) -9. [双指针:15.三数之和](./problems/0015.三数之和.md) -10. [双指针:18.四数之和](./problems/0018.四数之和.md) +8. ☑️ [链表:142.环形链表](./problems/0142.环形链表II.md) +9. ☑️ [双指针:15.三数之和](./problems/0015.三数之和.md) +10. ☑️ [双指针:18.四数之和](./problems/0018.四数之和.md) 11. [双指针:总结篇!](./problems/双指针总结.md) ## 栈与队列 1. [栈与队列:理论基础](./problems/栈与队列理论基础.md) -2. [栈与队列:232.用栈实现队列](./problems/0232.用栈实现队列.md) +2. ☑️ ⭐️ [栈与队列:232.用栈实现队列](./problems/0232.用栈实现队列.md) 3. [栈与队列:225.用队列实现栈](./problems/0225.用队列实现栈.md) -4. [栈与队列:20.有效的括号](./problems/0020.有效的括号.md) -5. [栈与队列:1047.删除字符串中的所有相邻重复项](./problems/1047.删除字符串中的所有相邻重复项.md) -6. [栈与队列:150.逆波兰表达式求值](./problems/0150.逆波兰表达式求值.md) -7. [栈与队列:239.滑动窗口最大值](./problems/0239.滑动窗口最大值.md) -8. [栈与队列:347.前K个高频元素](./problems/0347.前K个高频元素.md) +4. ☑️ [栈与队列:20.有效的括号](./problems/0020.有效的括号.md) +5. ☑️ [栈与队列:1047.删除字符串中的所有相邻重复项](./problems/1047.删除字符串中的所有相邻重复项.md) +6. ☑️ ⭐️ [栈与队列:150.逆波兰表达式求值](./problems/0150.逆波兰表达式求值.md) +7. 难 [栈与队列:239.滑动窗口最大值](./problems/0239.滑动窗口最大值.md) +8. priority queue 看不懂 [栈与队列:347.前K个高频元素](./problems/0347.前K个高频元素.md) 9. [栈与队列:总结篇!](./problems/栈与队列总结.md) ## 二叉树 @@ -184,30 +185,31 @@ 二叉树大纲 1. [关于二叉树,你该了解这些!](./problems/二叉树理论基础.md) -2. [二叉树:二叉树的递归遍历](./problems/二叉树的递归遍历.md) -3. [二叉树:二叉树的迭代遍历](./problems/二叉树的迭代遍历.md) +2. ☑️ [二叉树:二叉树的递归遍历](./problems/二叉树的递归遍历.md) +3. ☑️ 中序遍历没高兴看 [二叉树:二叉树的迭代遍历](./problems/二叉树的迭代遍历.md) 4. [二叉树:二叉树的统一迭代法](./problems/二叉树的统一迭代法.md) -5. [二叉树:二叉树的层序遍历](./problems/0102.二叉树的层序遍历.md) -6. [二叉树:226.翻转二叉树](./problems/0226.翻转二叉树.md) +5. ☑️ 有10道题 [二叉树:二叉树的层序遍历](./problems/0102.二叉树的层序遍历.md) +6. ☑️ 递归法 [二叉树:226.翻转二叉树](./problems/0226.翻转二叉树.md) 7. [本周小结!(二叉树)](./problems/周总结/20200927二叉树周末总结.md) -8. [二叉树:101.对称二叉树](./problems/0101.对称二叉树.md) -9. [二叉树:104.二叉树的最大深度](./problems/0104.二叉树的最大深度.md) -10. [二叉树:111.二叉树的最小深度](./problems/0111.二叉树的最小深度.md) -11. [二叉树:222.完全二叉树的节点个数](./problems/0222.完全二叉树的节点个数.md) -12. [二叉树:110.平衡二叉树](./problems/0110.平衡二叉树.md) -13. [二叉树:257.二叉树的所有路径](./problems/0257.二叉树的所有路径.md) +8. ☑️ ⭐️⭐️⭐️ [二叉树:101.对称二叉树](./problems/0101.对称二叉树.md) +9. ☑️ 层序 [二叉树:104.二叉树的最大深度](./problems/0104.二叉树的最大深度.md) +10. ☑️ 层序 [二叉树:111.二叉树的最小深度](./problems/0111.二叉树的最小深度.md) +11. ☑️ 层序 and 递归 [二叉树:222.完全二叉树的节点个数](./problems/0222.完全二叉树的节点个数.md) +12. ☑️ 递归法 [二叉树:110.平衡二叉树](./problems/0110.平衡二叉树.md) +13. ☑️ 递归+回溯法[二叉树:257.二叉树的所有路径](./problems/0257.二叉树的所有路径.md) 14. [本周总结!(二叉树)](./problems/周总结/20201003二叉树周末总结.md) -16. [二叉树:404.左叶子之和](./problems/0404.左叶子之和.md) -17. [二叉树:513.找树左下角的值](./problems/0513.找树左下角的值.md) -18. [二叉树:112.路径总和](./problems/0112.路径总和.md) -19. [二叉树:106.构造二叉树](./problems/0106.从中序与后序遍历序列构造二叉树.md) -20. [二叉树:654.最大二叉树](./problems/0654.最大二叉树.md) +15. [二叉树:二叉树中递归带着回溯](./problems/二叉树中递归带着回溯.md) +16. ☑️ ⭐️ [二叉树:404.左叶子之和](./problems/0404.左叶子之和.md) +17. ☑️ 用层序容易,但是还没用 用的递归+回溯 其实不大理解 ⭐️⭐️⭐️ [二叉树:513.找树左下角的值](./problems/0513.找树左下角的值.md) +18. ☑️ 自己写没写出来 答案不想看 ⭐️⭐️⭐️ [二叉树:112.路径总和](./problems/0112.路径总和.md) +19. ☑️ 递归 ⭐️⭐️⭐️ [二叉树:106.构造二叉树](./problems/0106.从中序与后序遍历序列构造二叉树.md) +20. ☑️ ⭐️⭐️⭐️⭐️ [二叉树:654.最大二叉树](./problems/0654.最大二叉树.md) 21. [本周小结!(二叉树)](./problems/周总结/20201010二叉树周末总结.md) -22. [二叉树:617.合并两个二叉树](./problems/0617.合并二叉树.md) -23. [二叉树:700.二叉搜索树登场!](./problems/0700.二叉搜索树中的搜索.md) -24. [二叉树:98.验证二叉搜索树](./problems/0098.验证二叉搜索树.md) -25. [二叉树:530.搜索树的最小绝对差](./problems/0530.二叉搜索树的最小绝对差.md) -26. [二叉树:501.二叉搜索树中的众数](./problems/0501.二叉搜索树中的众数.md) +22. ☑️ ⭐️ [二叉树:617.合并两个二叉树](./problems/0617.合并二叉树.md) +23. ☑️ 错关 没记录[二叉树:700.二叉搜索树登场!](./problems/0700.二叉搜索树中的搜索.md) +24. ☑️ 错关 没记录[二叉树:98.验证二叉搜索树](./problems/0098.验证二叉搜索树.md) +25. ☑️ 错关 没记录[二叉树:530.搜索树的最小绝对差](./problems/0530.二叉搜索树的最小绝对差.md) +26. ☑️ 错关 没记录[二叉树:501.二叉搜索树中的众数](./problems/0501.二叉搜索树中的众数.md) 27. [二叉树:236.公共祖先问题](./problems/0236.二叉树的最近公共祖先.md) 28. [本周小结!(二叉树)](./problems/周总结/20201017二叉树周末总结.md) 29. [二叉树:235.搜索树的最近公共祖先](./problems/0235.二叉搜索树的最近公共祖先.md) @@ -224,28 +226,28 @@ 回溯算法大纲 -1. [关于回溯算法,你该了解这些!](./problems/回溯算法理论基础.md) -2. [回溯算法:77.组合](./problems/0077.组合.md) -3. [回溯算法:77.组合优化](./problems/0077.组合优化.md) -4. [回溯算法:216.组合总和III](./problems/0216.组合总和III.md) -5. [回溯算法:17.电话号码的字母组合](./problems/0017.电话号码的字母组合.md) +1. ☑️ [关于回溯算法,你该了解这些!](./problems/回溯算法理论基础.md) +2. ☑️ ⭐️⭐️⭐️[回溯算法:77.组合](./problems/0077.组合.md) +3. ☑️ [回溯算法:77.组合优化](./problems/0077.组合优化.md) +4. ☑️ [回溯算法:216.组合总和III](./problems/0216.组合总和III.md) +5. ☑️ [回溯算法:17.电话号码的字母组合](./problems/0017.电话号码的字母组合.md) 6. [本周小结!(回溯算法系列一)](./problems/周总结/20201030回溯周末总结.md) -7. [回溯算法:39.组合总和](./problems/0039.组合总和.md) -8. [回溯算法:40.组合总和II](./problems/0040.组合总和II.md) -9. [回溯算法:131.分割回文串](./problems/0131.分割回文串.md) -10. [回溯算法:93.复原IP地址](./problems/0093.复原IP地址.md) -11. [回溯算法:78.子集](./problems/0078.子集.md) -12. [本周小结!(回溯算法系列二)](./problems/周总结/20201107回溯周末总结.md) -13. [回溯算法:90.子集II](./problems/0090.子集II.md) -14. [回溯算法:491.递增子序列](./problems/0491.递增子序列.md) -15. [回溯算法:46.全排列](./problems/0046.全排列.md) -16. [回溯算法:47.全排列II](./problems/0047.全排列II.md) -17. [本周小结!(回溯算法系列三)](./problems/周总结/20201112回溯周末总结.md) -18. [回溯算法去重问题的另一种写法](./problems/回溯算法去重问题的另一种写法.md) -19. [回溯算法:332.重新安排行程](./problems/0332.重新安排行程.md) -20. [回溯算法:51.N皇后](./problems/0051.N皇后.md) -21. [回溯算法:37.解数独](./problems/0037.解数独.md) -22. [回溯算法总结篇](./problems/回溯总结.md) +7. ☑️ 没做题,最好做一下 [回溯算法:39.组合总和](./problems/0039.组合总和.md) +8. ☑️ 重点在去重 [回溯算法:40.组合总和II](./problems/0040.组合总和II.md) +10. ☑️ 没做题 [回溯算法:131.分割回文串](./problems/0131.分割回文串.md) +11. 要先做131分割回文串 [回溯算法:93.复原IP地址](./problems/0093.复原IP地址.md) +12. ☑️ 还有点不大懂 [回溯算法:78.子集](./problems/0078.子集.md) +13. [本周小结!(回溯算法系列二)](./problems/周总结/20201107回溯周末总结.md) +14. ☑️ [回溯算法:90.子集II](./problems/0090.子集II.md) +15. [回溯算法:491.递增子序列](./problems/0491.递增子序列.md) +16. [回溯算法:46.全排列](./problems/0046.全排列.md) +17. [回溯算法:47.全排列II](./problems/0047.全排列II.md) +18. [本周小结!(回溯算法系列三)](./problems/周总结/20201112回溯周末总结.md) +19. [回溯算法去重问题的另一种写法](./problems/回溯算法去重问题的另一种写法.md) +20. [回溯算法:332.重新安排行程](./problems/0332.重新安排行程.md) +21. [回溯算法:51.N皇后](./problems/0051.N皇后.md) +22. [回溯算法:37.解数独](./problems/0037.解数独.md) +23. [回溯算法总结篇](./problems/回溯总结.md) ## 贪心算法 @@ -255,28 +257,28 @@ 贪心算法大纲 1. [关于贪心算法,你该了解这些!](./problems/贪心算法理论基础.md) -2. [贪心算法:455.分发饼干](./problems/0455.分发饼干.md) -3. [贪心算法:376.摆动序列](./problems/0376.摆动序列.md) -4. [贪心算法:53.最大子序和](./problems/0053.最大子序和.md) +2. ☑️ [贪心算法:455.分发饼干](./problems/0455.分发饼干.md) +3. ☑️ 有点麻烦 [贪心算法:376.摆动序列](./problems/0376.摆动序列.md) +4. ☑️ [贪心算法:53.最大子序和](./problems/0053.最大子序和.md) 5. [本周小结!(贪心算法系列一)](./problems/周总结/20201126贪心周末总结.md) -6. [贪心算法:122.买卖股票的最佳时机II](./problems/0122.买卖股票的最佳时机II.md) -7. [贪心算法:55.跳跃游戏](./problems/0055.跳跃游戏.md) -8. [贪心算法:45.跳跃游戏II](./problems/0045.跳跃游戏II.md) -9. [贪心算法:1005.K次取反后最大化的数组和](./problems/1005.K次取反后最大化的数组和.md) +6. ☑️ 很巧妙 [贪心算法:122.买卖股票的最佳时机II](./problems/0122.买卖股票的最佳时机II.md) +7. ☑️ [贪心算法:55.跳跃游戏](./problems/0055.跳跃游戏.md) +8. ☑️ [贪心算法:45.跳跃游戏II](./problems/0045.跳跃游戏II.md) +9. ☑️ [贪心算法:1005.K次取反后最大化的数组和](./problems/1005.K次取反后最大化的数组和.md) 10. [本周小结!(贪心算法系列二)](./problems/周总结/20201203贪心周末总结.md) -11. [贪心算法:134.加油站](./problems/0134.加油站.md) -12. [贪心算法:135.分发糖果](./problems/0135.分发糖果.md) -13. [贪心算法:860.柠檬水找零](./problems/0860.柠檬水找零.md) -14. [贪心算法:406.根据身高重建队列](./problems/0406.根据身高重建队列.md) +11. ☑️ [贪心算法:134.加油站](./problems/0134.加油站.md) +12. ☑️ [贪心算法:135.分发糖果](./problems/0135.分发糖果.md) +13. ☑️ [贪心算法:860.柠檬水找零](./problems/0860.柠檬水找零.md) +14. ☑️ [贪心算法:406.根据身高重建队列](./problems/0406.根据身高重建队列.md) 15. [本周小结!(贪心算法系列三)](./problems/周总结/20201217贪心周末总结.md) 16. [贪心算法:406.根据身高重建队列(续集)](./problems/根据身高重建队列(vector原理讲解).md) 17. [贪心算法:452.用最少数量的箭引爆气球](./problems/0452.用最少数量的箭引爆气球.md) -18. [贪心算法:435.无重叠区间](./problems/0435.无重叠区间.md) +18. ☑️ [贪心算法:435.无重叠区间](./problems/0435.无重叠区间.md) 19. [贪心算法:763.划分字母区间](./problems/0763.划分字母区间.md) -20. [贪心算法:56.合并区间](./problems/0056.合并区间.md) +20. ☑️ [贪心算法:56.合并区间](./problems/0056.合并区间.md) 21. [本周小结!(贪心算法系列四)](./problems/周总结/20201224贪心周末总结.md) -22. [贪心算法:738.单调递增的数字](./problems/0738.单调递增的数字.md) -23. [贪心算法:968.监控二叉树](./problems/0968.监控二叉树.md) +22. ☑️ [贪心算法:738.单调递增的数字](./problems/0738.单调递增的数字.md) +23. 困难 [贪心算法:968.监控二叉树](./problems/0968.监控二叉树.md) 24. [贪心算法:总结篇!(每逢总结必经典)](./problems/贪心算法总结篇.md) ## 动态规划 @@ -285,13 +287,13 @@ 1. [关于动态规划,你该了解这些!](./problems/动态规划理论基础.md) -2. [动态规划:509.斐波那契数](./problems/0509.斐波那契数.md) -3. [动态规划:70.爬楼梯](./problems/0070.爬楼梯.md) -4. [动态规划:746.使用最小花费爬楼梯](./problems/0746.使用最小花费爬楼梯.md) +2. ☑️ [动态规划:509.斐波那契数](./problems/0509.斐波那契数.md) +3. ☑️ [动态规划:70.爬楼梯](./problems/0070.爬楼梯.md) +4. ☑️ [动态规划:746.使用最小花费爬楼梯](./problems/0746.使用最小花费爬楼梯.md) 5. [本周小结!(动态规划系列一)](./problems/周总结/20210107动规周末总结.md) -6. [动态规划:62.不同路径](./problems/0062.不同路径.md) +6. ☑️ [动态规划:62.不同路径](./problems/0062.不同路径.md) 7. [动态规划:63.不同路径II](./problems/0063.不同路径II.md) -8. [动态规划:343.整数拆分](./problems/0343.整数拆分.md) +8. ☑️ [动态规划:343.整数拆分](./problems/0343.整数拆分.md) 9. [动态规划:96.不同的二叉搜索树](./problems/0096.不同的二叉搜索树.md) 10. [本周小结!(动态规划系列二)](./problems/周总结/20210114动规周末总结.md) @@ -302,28 +304,28 @@ 11. [动态规划:01背包理论基础(二维dp数组)](./problems/背包理论基础01背包-1.md) 12. [动态规划:01背包理论基础(一维dp数组)](./problems/背包理论基础01背包-2.md) -13. [动态规划:416.分割等和子集](./problems/0416.分割等和子集.md) -14. [动态规划:1049.最后一块石头的重量II](./problems/1049.最后一块石头的重量II.md) +13. ☑️ [动态规划:416.分割等和子集](./problems/0416.分割等和子集.md) +14. ☑️ [动态规划:1049.最后一块石头的重量II](./problems/1049.最后一块石头的重量II.md) 15. [本周小结!(动态规划系列三)](./problems/周总结/20210121动规周末总结.md) -16. [动态规划:494.目标和](./problems/0494.目标和.md) -17. [动态规划:474.一和零](./problems/0474.一和零.md) +16. ☑️ [动态规划:494.目标和](./problems/0494.目标和.md) +17. ☑️ [动态规划:474.一和零](./problems/0474.一和零.md) 18. [动态规划:完全背包理论基础(二维dp数组)](./problems/背包问题理论基础完全背包.md) 19. [动态规划:完全背包理论基础(一维dp数组)](./problems/背包问题完全背包一维.md) -20. [动态规划:518.零钱兑换II](./problems/0518.零钱兑换II.md) +20. ☑️ [动态规划:518.零钱兑换II](./problems/0518.零钱兑换II.md) 21. [本周小结!(动态规划系列四)](./problems/周总结/20210128动规周末总结.md) -22. [动态规划:377.组合总和Ⅳ](./problems/0377.组合总和Ⅳ.md) -23. [动态规划:70.爬楼梯(完全背包版本)](./problems/0070.爬楼梯完全背包版本.md) -24. [动态规划:322.零钱兑换](./problems/0322.零钱兑换.md) -25. [动态规划:279.完全平方数](./problems/0279.完全平方数.md) +22. ☑️ [动态规划:377.组合总和Ⅳ](./problems/0377.组合总和Ⅳ.md) +23. ☑️ [动态规划:70.爬楼梯(完全背包版本)](./problems/0070.爬楼梯完全背包版本.md) +24. ☑️ [动态规划:322.零钱兑换](./problems/0322.零钱兑换.md) +25. ☑️ [动态规划:279.完全平方数](./problems/0279.完全平方数.md) 26. [本周小结!(动态规划系列五)](./problems/周总结/20210204动规周末总结.md) -27. [动态规划:139.单词拆分](./problems/0139.单词拆分.md) +27. ☑️ [动态规划:139.单词拆分](./problems/0139.单词拆分.md) 28. [动态规划:多重背包理论基础](./problems/背包问题理论基础多重背包.md) 29. [背包问题总结篇](./problems/背包总结篇.md) 打家劫舍系列: -29. [动态规划:198.打家劫舍](./problems/0198.打家劫舍.md) -30. [动态规划:213.打家劫舍II](./problems/0213.打家劫舍II.md) +29. ☑️ [动态规划:198.打家劫舍](./problems/0198.打家劫舍.md) +30. ☑️ [动态规划:213.打家劫舍II](./problems/0213.打家劫舍II.md) 31. [动态规划:337.打家劫舍III](./problems/0337.打家劫舍III.md) 股票系列: @@ -331,14 +333,14 @@ 股票问题总结 -32. [动态规划:121.买卖股票的最佳时机](./problems/0121.买卖股票的最佳时机.md) +32. ☑️ [动态规划:121.买卖股票的最佳时机](./problems/0121.买卖股票的最佳时机.md) 33. [动态规划:本周小结(系列六)](./problems/周总结/20210225动规周末总结.md) -34. [动态规划:122.买卖股票的最佳时机II](./problems/0122.买卖股票的最佳时机II(动态规划).md) -35. [动态规划:123.买卖股票的最佳时机III](./problems/0123.买卖股票的最佳时机III.md) +34. ☑️ [动态规划:122.买卖股票的最佳时机II](./problems/0122.买卖股票的最佳时机II(动态规划).md) +35. 困难[动态规划:123.买卖股票的最佳时机III](./problems/0123.买卖股票的最佳时机III.md) 36. [动态规划:188.买卖股票的最佳时机IV](./problems/0188.买卖股票的最佳时机IV.md) -37. [动态规划:309.最佳买卖股票时机含冷冻期](./problems/0309.最佳买卖股票时机含冷冻期.md) +37. ☑️ [动态规划:309.最佳买卖股票时机含冷冻期](./problems/0309.最佳买卖股票时机含冷冻期.md) 38. [动态规划:本周小结(系列七)](./problems/周总结/20210304动规周末总结.md) -39. [动态规划:714.买卖股票的最佳时机含手续费](./problems/0714.买卖股票的最佳时机含手续费(动态规划).md) +39. ☑️ [动态规划:714.买卖股票的最佳时机含手续费](./problems/0714.买卖股票的最佳时机含手续费(动态规划).md) 40. [动态规划:股票系列总结篇](./problems/动态规划-股票问题总结篇.md) 子序列系列: @@ -346,29 +348,29 @@ -41. [动态规划:300.最长递增子序列](./problems/0300.最长上升子序列.md) +41. ☑️ [动态规划:300.最长递增子序列](./problems/0300.最长上升子序列.md) 42. [动态规划:674.最长连续递增序列](./problems/0674.最长连续递增序列.md) -43. [动态规划:718.最长重复子数组](./problems/0718.最长重复子数组.md) -44. [动态规划:1143.最长公共子序列](./problems/1143.最长公共子序列.md) -45. [动态规划:1035.不相交的线](./problems/1035.不相交的线.md) -46. [动态规划:53.最大子序和](./problems/0053.最大子序和(动态规划).md) -47. [动态规划:392.判断子序列](./problems/0392.判断子序列.md) +43. ☑️ [动态规划:718.最长重复子数组](./problems/0718.最长重复子数组.md) +44. ☑️ 没做题 [动态规划:1143.最长公共子序列](./problems/1143.最长公共子序列.md) +45. ☑️ 1143一摸一样 [动态规划:1035.不相交的线](./problems/1035.不相交的线.md) +46. ☑️ [动态规划:53.最大子序和](./problems/0053.最大子序和(动态规划).md) +47. ☑️ [动态规划:392.判断子序列](./problems/0392.判断子序列.md) 48. [动态规划:115.不同的子序列](./problems/0115.不同的子序列.md) -49. [动态规划:583.两个字符串的删除操作](./problems/0583.两个字符串的删除操作.md) -50. [动态规划:72.编辑距离](./problems/0072.编辑距离.md) +49. ☑️ [动态规划:583.两个字符串的删除操作](./problems/0583.两个字符串的删除操作.md) +50. ☑️ [动态规划:72.编辑距离](./problems/0072.编辑距离.md) 51. [编辑距离总结篇](./problems/为了绝杀编辑距离,卡尔做了三步铺垫.md) -52. [动态规划:647.回文子串](./problems/0647.回文子串.md) -53. [动态规划:516.最长回文子序列](./problems/0516.最长回文子序列.md) +52. ☑️ [动态规划:647.回文子串](./problems/0647.回文子串.md) +53. ☑️ [动态规划:516.最长回文子序列](./problems/0516.最长回文子序列.md) 54. [动态规划总结篇](./problems/动态规划总结篇.md) ## 单调栈 -1. [单调栈:739.每日温度](./problems/0739.每日温度.md) -2. [单调栈:496.下一个更大元素I](./problems/0496.下一个更大元素I.md) -3. [单调栈:503.下一个更大元素II](./problems/0503.下一个更大元素II.md) -4. [单调栈:42.接雨水](./problems/0042.接雨水.md) -5. [单调栈:84.柱状图中最大的矩形](./problems/0084.柱状图中最大的矩形.md) +1. ☑️ 没有做 [单调栈:739.每日温度](./problems/0739.每日温度.md) +2. ☑️ 没有做 [单调栈:496.下一个更大元素I](./problems/0496.下一个更大元素I.md) +3. ☑️ [单调栈:503.下一个更大元素II](./problems/0503.下一个更大元素II.md) +4. ☑️ [单调栈:42.接雨水](./problems/0042.接雨水.md) +5. ☑️ 没有做 [单调栈:84.柱状图中最大的矩形](./problems/0084.柱状图中最大的矩形.md) ## 图论 @@ -421,11 +423,11 @@ * [1365.有多少小于当前数字的数字](./problems/1365.有多少小于当前数字的数字.md) * [941.有效的山脉数组](./problems/0941.有效的山脉数组.md) (双指针) -* [1207.独一无二的出现次数](./problems/1207.独一无二的出现次数.md) 数组在哈希法中的经典应用 -* [283.移动零](./problems/0283.移动零.md) 【数组】【双指针】 -* [189.旋转数组](./problems/0189.旋转数组.md) -* [724.寻找数组的中心索引](./problems/0724.寻找数组的中心索引.md) -* [34.在排序数组中查找元素的第一个和最后一个位置](./problems/0034.在排序数组中查找元素的第一个和最后一个位置.md) (二分法) +* ☑️ [1207.独一无二的出现次数](./problems/1207.独一无二的出现次数.md) 数组在哈希法中的经典应用 +* ☑️ [283.移动零](./problems/0283.移动零.md) 【数组】【双指针】 +* ☑️ [189.旋转数组](./problems/0189.旋转数组.md) +* ☑️ [724.寻找数组的中心索引](./problems/0724.寻找数组的中心索引.md) +* ☑️ [34.在排序数组中查找元素的第一个和最后一个位置](./problems/0034.在排序数组中查找元素的第一个和最后一个位置.md) (二分法) * [922.按奇偶排序数组II](./problems/0922.按奇偶排序数组II.md) * [35.搜索插入位置](./problems/0035.搜索插入位置.md) @@ -462,7 +464,7 @@ ## 动态规划 * [5.最长回文子串](./problems/0005.最长回文子串.md) 和[647.回文子串](https://mp.weixin.qq.com/s/2WetyP6IYQ6VotegepVpEw) 差不多是一样的 * [132.分割回文串II](./problems/0132.分割回文串II.md) 与647.回文子串和 5.最长回文子串 很像 -* [673.最长递增子序列的个数](./problems/0673.最长递增子序列的个数.md) +* ☑️ [673.最长递增子序列的个数](./problems/0673.最长递增子序列的个数.md) ## 图论 * [463.岛屿的周长](./problems/0463.岛屿的周长.md) (模拟) @@ -480,6 +482,9 @@ ## 位运算 * [1356.根据数字二进制下1的数目排序](./problems/1356.根据数字二进制下1的数目排序.md) +## 二分法 +* ☑️ [34 在排序数组中查找元素的第一个和最后一个位置] +* ☑️ [704 二分法查找] # 算法模板 diff --git "a/problems/0142.\347\216\257\345\275\242\351\223\276\350\241\250II.md" "b/problems/0142.\347\216\257\345\275\242\351\223\276\350\241\250II.md" index 4fd81ef0f5..b78c141f54 100755 --- "a/problems/0142.\347\216\257\345\275\242\351\223\276\350\241\250II.md" +++ "b/problems/0142.\347\216\257\345\275\242\351\223\276\350\241\250II.md" @@ -92,7 +92,8 @@ fast指针走过的节点数:` x + y + n (y + z)`,n为fast指针在环内走 先拿n为1的情况来举例,意味着fast指针在环形里转了一圈之后,就遇到了 slow指针了。 -当 n为1的时候,公式就化解为 `x = z`, + +**当 n为1的时候,公式就化解为 `x = z`,** 这就意味着,**从头结点出发一个指针,从相遇节点 也出发一个指针,这两个指针每次只走一个节点, 那么当这两个指针相遇的时候就是 环形入口的节点**。