# leetcode **Repository Path**: litarussell/leetcode ## Basic Information - **Project Name**: leetcode - **Description**: leetcode算法练习 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-11-02 - **Last Updated**: 2021-05-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # leetcode leetcode算法练习 # 动态规划 回文串 需要注意dp的计算顺序, 被依赖的dp状态需要先通过已知的状态计算出来 * [5. 最长回文子串](https://leetcode-cn.com/problems/longest-palindromic-substring/) * [516. 最长回文子序列](https://leetcode-cn.com/problems/longest-palindromic-subsequence/) * [647. 回文子串](https://leetcode-cn.com/problems/palindromic-substrings/) * [300. 最长上升子序列](https://leetcode-cn.com/problems/longest-increasing-subsequence/) 贪心算法比较巧妙, 贪心策略是最长上升序列最后加上的数要尽可能的小 * [53. 最大子序和](https://leetcode-cn.com/problems/maximum-subarray/) dp优化的思路都是看转移方程所依赖的状态, 该题只依赖于上一个最大子序和, 只需要一个变量来记录上一个状态 * [152. 乘积最大子数组](https://leetcode-cn.com/problems/maximum-product-subarray/) 需要考虑负数 dp会有两个状态转移方程 可优化为两个变量 因为下一个状态只和前面的最大乘积 最小乘积有关 # 贪心算法 主要是贪心策略 * [621. 任务调度器](https://leetcode-cn.com/problems/task-scheduler/): 贪心算法、队列 * [406. 根据身高重建队列](https://leetcode-cn.com/problems/queue-reconstruction-by-height/) * [300. 最长上升子序列](https://leetcode-cn.com/problems/longest-increasing-subsequence/) * [452. 用最少数量的箭引爆气球](https://leetcode-cn.com/problems/minimum-number-of-arrows-to-burst-balloons/) * [435. 无重叠区间](https://leetcode-cn.com/problems/non-overlapping-intervals/) * [402. 移掉k位数字](https://leetcode-cn.com/problems/remove-k-digits/) * [738. 单调递增的数字](https://leetcode-cn.com/problems/monotone-increasing-digits/): 贪心策略->为了保证数字从高位开始要尽可能不变, * [x] [767. 重构字符串](https://leetcode-cn.com/problems/reorganize-string/) ## 回溯算法: * [46. 全排列](https://leetcode-cn.com/problems/permutations/) * [47. 全排列 II](https://leetcode-cn.com/problems/permutations-ii/) 剪枝排除重复项 * [39. 组合总和](https://leetcode-cn.com/problems/combination-sum/) 考虑剪枝 * [17. 电话号码的字母组合](https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number/) 隐式回溯 * [22. 括号生成](https://leetcode-cn.com/problems/generate-parentheses/) * [39. 组合总和](https://leetcode-cn.com/problems/combination-sum/) * [40. 组合总和 II](https://leetcode-cn.com/problems/combination-sum-ii/) > 组合总和两题的不同在于每个元素能否重复使用 * [77. 组合](https://leetcode-cn.com/problems/combinations/) * [78. 子集](https://leetcode-cn.com/problems/subsets/) * [90. 子集 II](https://leetcode-cn.com/problems/subsets-ii/) * [93. 复原IP地址](https://leetcode-cn.com/problems/restore-ip-addresses/) * [784. 字母大小写全排列](https://leetcode-cn.com/problems/letter-case-permutation/) - [x] [51. N 皇后](https://leetcode-cn.com/problems/n-queens/) * [60. 第k个排列](https://leetcode-cn.com/problems/permutation-sequence/) # 二叉树 * [222. 完全二叉树的节点个数](https://leetcode-cn.com/problems/count-complete-tree-nodes/) 完全二叉树 二分 逐个确认满二叉树的子树 # 前缀和: 前缀和之间的差 * [560. 和为k的子数组](https://leetcode-cn.com/problems/subarray-sum-equals-k/submissions/) * [437. 路径总和 III](https://leetcode-cn.com/problems/path-sum-iii/) * [454. 四数相加 II](https://leetcode-cn.com/problems/4sum-ii/) ## 路径和 * [112. 路径总和](https://leetcode-cn.com/problems/path-sum/) * [113. 路径总和 II](https://leetcode-cn.com/problems/path-sum-ii/) * [437. 路径总和 III](https://leetcode-cn.com/problems/path-sum-iii/) * [687. 最长同值路径](https://leetcode-cn.com/problems/longest-univalue-path/) # 最长上升子序列 重叠 不重叠 dp 贪心 * [300. 最长上升子序列](https://leetcode-cn.com/problems/longest-increasing-subsequence/) * [435. 无重叠区间](https://leetcode-cn.com/problems/non-overlapping-intervals/) * [452. 用最少数量的箭引爆气球](https://leetcode-cn.com/problems/minimum-number-of-arrows-to-burst-balloons/) # 单调栈 * [739. 每日温度](https://leetcode-cn.com/problems/daily-temperatures/) - [x] [42. 接雨水](https://leetcode-cn.com/problems/trapping-rain-water/) - [x] [84. 柱状图中最大的矩形](https://leetcode-cn.com/problems/largest-rectangle-in-histogram/) # 拓扑排序 * [207. 课程表](https://leetcode-cn.com/problems/course-schedule) * [210. 课程表 II](https://leetcode-cn.com/problems/course-schedule-ii/)