🧀代码随想录算法训练营
文章平均质量分 62
从未从未
这个作者很懒,什么都没留下…
展开
-
Day 29 | 回溯:组合、排序、去重逻辑
去重:所谓去重,其实就是使用过的元素不能重复选取。组合问题可以抽象为树形结构,那么“使用过”在树形结构上有两个维度,一个维度是同一个树枝上使用过,一个维度是同一个数层上使用过。树层去重:如何判断同一树层上元素(相同的元素)是否使用过了呢?如果并且,就说明:前一个树枝,使用了candidates[i - 1],也就是说同一树层使用过candidates[i - 1]。此时for循环里就应该做continue的操作。原创 2023-10-21 15:21:13 · 46 阅读 · 0 评论 -
day 10 | 232.用栈实现队列、225. 用队列实现栈
思路:栈的特点是 先进后出,而队列的特点是 先进先出。使用两个栈,由于栈入栈顺序与队列的出队顺序是 相反的.所以,栈1负责入队,出队时将栈1的元素全部入栈到 栈2。此时,栈2的出栈顺序就是 队列的 出队的顺序。原创 2023-10-02 15:21:41 · 31 阅读 · 1 评论 -
Day2 | 977.有序数组的平方,209.长度最小的子数组,59.螺旋矩阵II
滑动窗口,遍历右边界,循环更新左边界。模拟,注意边界处理。原创 2023-09-22 00:43:20 · 81 阅读 · 1 评论 -
代码随想录算法训练营第一天 | leetcode 704. 二分查找、27. 移除元素
区间的定义就是不变量,那么在循环中坚持根据查找区间的定义来做边界处理,就是循环不变量规则。重新在读这句话,有点理解了。二分查找,真是一写就废。关键在于真要理解代码逻辑是如何写的。原创 2023-09-20 19:51:43 · 267 阅读 · 1 评论