Leetcode
文章平均质量分 62
此栏目跟随代码随想录,对Leetcode相关的经典题目进行刷
昔我往矣wood
这个作者很懒,什么都没留下…
展开
-
【每日一题】885. 考场就坐
遍历整个set,找出最优位置原创 2022-12-30 14:02:17 · 1059 阅读 · 0 评论 -
【随想录】-【8 回溯算法】【子集问题】491 递增子序列
注意去重逻辑不一样:这个事先不能排序,所以不能使用i>start&&num[i]==i-1; ——为了记忆断开的使用情况,如[1,2,1,1],需要使用一个used记录使用情况;(2)注意:需要使用所有子集,不能return,每次都需要接着来;...原创 2022-08-27 21:22:54 · 388 阅读 · 0 评论 -
【随想录】-【8 回溯算法】【子集问题】90 子集Ⅱ
去重:有重复数字数组,每个数字取一次,利用used数组或i>start树层了去重即可;原创 2022-08-21 22:10:39 · 287 阅读 · 0 评论 -
【随想录】-【8 回溯算法】【子集问题】78 子集
(1)解决方法同组合问题,不过每个子节点都要记录为解而已;(2)子集问题:等价于两种组合问题,不重复集合,每个取一次;重复集合,每个取一次;(3)注意终止条件;原创 2022-08-21 22:02:38 · 137 阅读 · 0 评论 -
【随想录】-【8 回溯算法】【组合问题】40 组合总和Ⅱ
(1)组合问题,子集问题,排列问题,棋盘问题,切割问题;(2)组合问题:从N个数里面挑选满足条件的k个;(3)for循环分布:背包内物品外组合,背包外物品内排列(兑换零钱);(4)组合问题: ——数组中无重复元素:使用一次(startIndex设为i+1即可,注意剪枝path.size和sum);不限次使用(startIndex设为i,用来去重,剪枝sum); ——有重复元素:肯定只使用一次,用used进行树层去重,只能是树层去重,不能树枝原创 2022-08-19 17:46:57 · 192 阅读 · 0 评论 -
【随想录】-【8 回溯算法】【组合问题】39 组合总和
重点:(1)组合问题:N个数里面挑出满足条件的k个数;(2)回溯法解决问题:组合问题,切割问题,子集问题,排列问题,棋盘问题;(3)for循环分布:背包内物品外组合,背包外物品内排列:(4)重点是:如何实现重复使用元素,以及去掉重复的组合; ——设置startIndex为当前的i,然后终止为candidate.size,这样就不用往回找;(5)参数不能递减target,而应该设置sum与其比对;原创 2022-08-19 16:36:58 · 160 阅读 · 0 评论 -
【随想录】-【8 回溯算法】【组合问题】77 组合
(1)组合问题:N个数里面挑出满足条件的k个数;(2)回溯法解决问题:组合问题,切割问题,子集问题,排列问题,棋盘问题;(3)for循环分布:背包内物品外组合,背包外物品内排列;(4)注意判断递归深度和宽度各代表什么。对于此问题,每次从startIndex开始,到n结束;(5)注意剪枝:当n-startIndex不够k-path.size时,可以提前停止;原创 2022-08-19 16:01:52 · 352 阅读 · 0 评论 -
【随想录】-【8 回溯算法】回溯算法理论基础
(1)深搜:递归和栈实现,先中后序遍历;广搜:队列实现,层次遍历;(2)回溯的本质是穷举,即暴力搜索(BFS和DFS),所以效率不高;(3)回溯法解决问题:组合问题,切割问题,子集问题,排列问题,棋盘问题;(4)for循环分布:背包内物品外组合,背包外物品内排列:(5)回溯法抽象为一棵树:集合的大小构成树的宽度,递归的终止条件构成深度;(6)回溯模板:for实现横向遍历,backtracking实现纵向遍历;(7)回溯法三部曲:确定函数参数及返回条件void;终止条件;单层递归逻辑(原创 2022-08-19 15:24:18 · 343 阅读 · 0 评论 -
【力客热题HOT100】-【068】238 除自身以外数组的乘积
动态规划,O(n)原创 2022-07-29 21:31:45 · 292 阅读 · 0 评论 -
【力客热题HOT100】-【044】114 二叉树展开为链表
两种方法:前序遍历和寻找前驱节点。注意后者的实现思想。原创 2022-07-29 16:53:29 · 196 阅读 · 0 评论 -
【力客热题HOT100】-【043】105 从前序与中序遍历序列构造二叉树
递归:重点是找到对应的左右子树进行分割原创 2022-07-28 22:58:50 · 378 阅读 · 0 评论 -
【力客热题HOT100】-【042】104 二叉树的最大深度
深搜和广搜两种方法解决。原创 2022-07-28 17:08:08 · 95 阅读 · 0 评论 -
【力客热题HOT100】-【041】102 二叉树的层序遍历
二叉树层序遍历,比较简单。原创 2022-07-28 16:35:40 · 285 阅读 · 0 评论 -
【力客热题HOT100】-【040】101 对称二叉树
1)递归,实现起来思路清晰;2)迭代:队列实现层次遍历;原创 2022-07-28 16:00:10 · 122 阅读 · 0 评论 -
【力客热题HOT100】-【038】96 不同的二叉搜索树
动态规划,结构特征比较明显。原创 2022-07-28 15:11:14 · 213 阅读 · 0 评论 -
【力客热题HOT100】-【039】98 验证二叉搜索树
两种方法:1)中序遍历(迭代);2)递归原创 2022-07-28 14:45:56 · 166 阅读 · 0 评论 -
【力客热题HOT100】-【037】94 二叉树的中序遍历
二叉树的先中后序遍历,以及层次遍历。原创 2022-07-27 15:54:36 · 184 阅读 · 0 评论 -
【随想录】-【10 动态规划】123 买卖股票的最佳时机Ⅲ
本题的动规重点在于递推公式的判断,以及dp数组的推导,注意dp数组跟问题的状态紧密相关。原创 2022-07-26 14:44:36 · 108 阅读 · 0 评论 -
【随想录】-【10 动态规划】122 买卖股票的最佳时机Ⅱ
多次买卖,变一下递推公式即可。原创 2022-07-26 13:56:26 · 120 阅读 · 0 评论 -
【随想录】-【10 动态规划】121 买卖股票的最佳时机
此题三种解法。暴力方法超时,贪心比较简单,容易想出来。动规是针对这类题的特殊方法,因为考虑两种情况。原创 2022-07-25 20:52:10 · 94 阅读 · 0 评论 -
【随想录】-【10 动态规划】518 零钱兑换Ⅱ
动规能解决排列问题和组合问题。背包外物品内排列,背包内物品外组合。原创 2022-07-24 22:35:01 · 168 阅读 · 0 评论 -
【随想录】-【10 动态规划】322 零钱兑换
动规,比较简单。原创 2022-07-24 22:06:48 · 75 阅读 · 0 评论 -
【随想录】-【11 单调栈】-【05】84 柱状图中最大矩形
双指针暴力解法,O(n^2)过不了。动规和单调栈,找左右两边第一根比自己矮的柱子。原创 2022-07-24 13:19:11 · 319 阅读 · 0 评论 -
【随想录】-【11 单调栈】-【04】42 接雨水
三种解法。双指针就是两轮for的暴力搜索;动规就是升级版的双指针,达到O(n);最后单调栈属实难理解。原创 2022-07-24 12:06:07 · 260 阅读 · 0 评论 -
【随想录】-【11 单调栈】-【03】503 下一个更大元素Ⅱ
同样,可使用三种方法来解。暴力搜索也可以过。重点看单调栈怎么解决循环数组的问题。原创 2022-07-22 22:28:20 · 82 阅读 · 0 评论 -
【随想录】-【11 单调栈】-【02】496 下一个更大元素
抽象出问题,然后利用单调栈解决。注意数组存的内容不同,每日温度是下标,这个是下标对应的值。原创 2022-07-22 20:48:34 · 75 阅读 · 0 评论 -
【力客热题HOT100】-【100】739 每日温度
解法1:暴力搜索,逻辑简单,超时;解法2:动态规划,跳跃式遍历,升级的暴力搜索,AC;解法3:单调栈,O(n),AC,掌握好单调栈的思想和应用。原创 2022-07-22 18:17:47 · 307 阅读 · 0 评论 -
【力客热题HOT100】-【061】207 课程表
1)使用DFS和BFS实现拓扑排序;2)寻找有向图中是否存在环:DFS和拓扑排序;原创 2022-07-26 22:25:14 · 155 阅读 · 0 评论 -
【力客热题HOT100】-【060】206 反转链表
每次单独记下当前节点的后继节点。头插法两步,尾插法三步。原创 2022-07-22 10:01:44 · 160 阅读 · 0 评论 -
【力客热题HOT100】-【059】200 岛屿数量
岛屿问题:深搜广搜遍历。遍历的次数就是岛屿的数量。原创 2022-07-22 10:55:56 · 143 阅读 · 0 评论 -
【随想录】-【动态规划】337 打家劫舍Ⅲ
使用记忆化递推和动态规划两种方法。原创 2022-07-21 22:08:15 · 310 阅读 · 0 评论 -
【随想录】-【动态规划】213 打家劫舍Ⅱ
同打家劫舍的动规,不过将环断开,考虑两种情况即可。原创 2022-07-21 21:02:56 · 265 阅读 · 0 评论 -
【力客热题HOT100】-【058】198 打家劫舍
比较明显的动态规划特征。注意要存储两个数,即第n家偷与不偷的两个结果都要存储,最后取最大值。更新数组比较明显。原创 2022-07-21 20:32:00 · 92 阅读 · 0 评论 -
【力客热题HOT100】-【057】169 多数元素
简单题。使用中位数法,投票法,哈希表解决。注意投票法原理的理解。原创 2022-07-21 17:28:22 · 132 阅读 · 0 评论 -
【力客热题HOT100】-【056】160 相交链表
分析题意,使用哈希表和双指针两种方法解决原创 2022-07-21 16:54:48 · 67 阅读 · 0 评论 -
【力客热题HOT100】-【055】155 最小栈
两种方法实现:双栈法和min_element法原创 2022-07-20 22:19:59 · 93 阅读 · 0 评论 -
【力客热题HOT100】-【054】152 乘积最大子数组
此题的动态规划,需要维护Fmax和Fmin两个数据来判断当前位置的最优解。原创 2022-07-20 21:46:01 · 115 阅读 · 0 评论 -
【力客热题HOT100】-【052】146 LRU缓存
用哈希表和双向链表来实现LRU的机制,注意双向链表的删除和增加节点的操作方式。原创 2022-07-20 13:19:58 · 165 阅读 · 0 评论 -
【力客热题HOT100】-【050】
理解快慢指针用法和数量关系,以及哈希表原创 2022-07-18 20:26:29 · 69 阅读 · 0 评论 -
【力客热题HOT100】-【050】141 环形链表
双指针法,判断循环链表原创 2022-07-18 19:52:42 · 74 阅读 · 0 评论