代码随想录
一起刷代码随想录
O_ra_Cle
记录柏油小菜人转码经历
展开
-
代码随想录一刷总结(待更新)
最重要的是循环不变量原理区间定义 left == right 时有没有意义,取决于开区间还是闭区间使用场景:可以按照某一规则将数组分为左右两部分。原创 2024-04-03 20:48:37 · 203 阅读 · 0 评论 -
代码随想录day45:单调栈篇
【代码】代码随想录day45:单调栈篇。原创 2024-03-26 21:28:06 · 278 阅读 · 0 评论 -
代码随想录day44:动态规划over,回文子串及字序列
【代码】代码随想录day44:动态规划over,回文子串及字序列。原创 2024-03-26 20:21:05 · 580 阅读 · 0 评论 -
代码随想录day43:动态规划part11,子序列问题,一直到“编辑距离”
dp数组定义 i-1 j-1 是为了省略初始化,如果定义为以 i j 结尾需要对 dp[0] 的情况初始化。原创 2024-03-20 17:43:48 · 217 阅读 · 0 评论 -
代码随想录day42:动态规划part10,买卖股票篇
一支股票一共交易一次。一支股票至多交易两次。一支股票至多交易k次。原创 2024-03-18 16:33:24 · 334 阅读 · 0 评论 -
代码随想录day41:动态规划part9,打家劫舍篇
【代码】代码随想录day41:动态规划part9,打家劫舍篇。原创 2024-03-17 23:24:47 · 211 阅读 · 0 评论 -
代码随想录day40:动态规划part8,背包问题完
背包问题需要重新梳理总结!原创 2024-03-17 22:06:06 · 286 阅读 · 0 评论 -
代码随想录day39:动态规划part7,完全背包继续
【代码】代码随想录day39:动态规划part7,完全背包继续。原创 2024-03-14 14:01:55 · 433 阅读 · 0 评论 -
代码随想录day38:动态规划part6,完全背包
外层先遍历物品,内层再遍历背包,算组合数。外层先遍历背包,内层再遍历物品,算排列数。原创 2024-03-12 13:54:18 · 356 阅读 · 0 评论 -
代码随想录day37:动态规划part5,01背包应用
/ dp[j]:容量j的背包放下的最大重量,容量重量都是stones[i]i < n;i++) {j--)// 分出这么多,又粉碎抵消这么多。原创 2024-03-11 16:46:38 · 268 阅读 · 0 评论 -
代码随想录day36:动态规划part4,背包问题
dp[j]表示:容量为j的背包,所背的物品价值可以最大为dp[j]。dp[i][j]里的i和j表达的是什么了,i是物品,j是背包容量。原创 2024-03-10 18:05:40 · 308 阅读 · 0 评论 -
代码随想录day35:动态规划part3
【代码】代码随想录day35:动态规划part3。原创 2024-03-09 23:20:27 · 272 阅读 · 0 评论 -
代码随想录day34:动态规划part2
【代码】代码随想录day34:动态规划part2。原创 2024-03-07 17:25:12 · 239 阅读 · 0 评论 -
代码随想录day33:动态规划part1
确定dp数组(dp table)以及下标的含义。原创 2024-03-07 16:40:09 · 199 阅读 · 0 评论 -
代码随想录day32:贪心part6
叶子节点的父节点放摄像头是最好的。后序遍历因为要从底往上。原创 2024-03-06 21:17:23 · 298 阅读 · 0 评论 -
代码随想录day31:贪心part5,重叠区间
射箭是多出来一个重叠区间 count + 1。本题是多一个区间重叠 count + 1。每个字母更新最短结束右边界。原创 2024-03-04 15:18:10 · 175 阅读 · 0 评论 -
代码随想录day30:贪心part4,多看多练多想
【代码】代码随想录day30:贪心part4,多看多练多想。原创 2024-03-02 17:01:33 · 239 阅读 · 0 评论 -
代码随想录day29:贪心part3,stream处理数组的思路
【代码】代码随想录day29:贪心part3,stream处理数组的思路。原创 2024-03-01 23:37:36 · 244 阅读 · 0 评论 -
代码随想录day28:贪心part2,做过就是思路
【代码】代码随想录day28:贪心part2,做过就是思路。原创 2024-02-29 11:13:31 · 326 阅读 · 0 评论 -
代码随想录day27:贪心part1,基础篇
关键在于如何区分上下坡平坡和同方向平坡的情况。循环结束条件注意饼干比孩子多的情况。原创 2024-02-28 18:03:27 · 476 阅读 · 0 评论 -
代码随想录day26:回溯part6,N皇后
【代码】代码随想录day26:回溯part6,N皇后。原创 2024-02-27 22:39:38 · 219 阅读 · 0 评论 -
代码随想录day25:回溯part5,递增子序列,排列问题
【代码】代码随想录day25:回溯part5,递增子序列,排列问题。原创 2024-02-26 17:14:42 · 351 阅读 · 0 评论 -
代码随想录day24:回溯part4,切割、子集问题
和组合II类似的去重思路:树层去重,树枝不用去重。原创 2024-02-25 00:21:53 · 208 阅读 · 0 评论 -
代码随想录day23:回溯part3,继续组合问题
【代码】代码随想录day23:回溯part3,继续组合问题。原创 2024-02-23 20:55:51 · 251 阅读 · 0 评论 -
代码随想录day22:回溯part2,组合总和
代码随想录day22:回溯part2,组合总和。原创 2024-02-22 21:08:50 · 150 阅读 · 0 评论 -
代码随想录day21:回溯part1,组合问题与剪枝
找到满足 path 长度达到 k 的最多遍历到的上界 n - (k - path.size()) + 1。一层回溯(即一层递归)解决一层for循环的问题。原创 2024-02-20 22:31:12 · 165 阅读 · 0 评论 -
代码随想录day20:二叉树part9,二叉搜索树转换
【代码】代码随想录day20:二叉树part9,二叉搜索树转换。原创 2024-02-20 16:18:24 · 360 阅读 · 0 评论 -
代码随想录day19:二叉树part8,二叉搜索树插入删除
【代码】代码随想录day19:二叉树part8,二叉搜索树插入删除。原创 2024-02-19 23:13:29 · 125 阅读 · 0 评论 -
代码随想录day18:二叉树part7,二叉搜索树,公共祖先
为什么用后序:需要左右子节点的结果来判断。原创 2024-02-18 21:27:23 · 135 阅读 · 0 评论 -
代码随想录day17:二叉树part6,合并二叉树,二叉搜索树
【代码】代码随想录day17:二叉树part6,合并二叉树,二叉搜索树。原创 2024-02-17 13:42:06 · 169 阅读 · 1 评论 -
代码随想录day16:二叉树part5,路径总和(回溯),中序+前/后序构造二叉树
【代码】代码随想录day16:二叉树part5,路径总和(回溯),中序+前/后序构造二叉树。原创 2024-02-15 20:23:56 · 257 阅读 · 1 评论 -
代码随想录day15:二叉树part4,平衡二叉树&二叉树所有路径(递归回溯)
(根节点高度等于树的最大深度)原创 2024-02-15 14:01:57 · 121 阅读 · 1 评论 -
代码随想录day14:二叉树part3,深度/高度,完全二叉树节点个数
当作普通二叉树来处理。其实是后序遍历的思路。原创 2024-02-08 15:23:45 · 259 阅读 · 0 评论 -
代码随想录day13:二叉树part2,层序遍历,翻转,对称
从最底层往上层遍历,把上一题的结果数组反转一下。其实是后序遍历的逻辑。原创 2024-02-08 14:19:23 · 216 阅读 · 0 评论 -
代码随想录day12:二叉树part1,递归/迭代遍历法
那么再看看中序遍历,中序遍历是左中右,先访问的是二叉树顶部的节点,然后一层一层向下访问,直到到达树左面的最底部,再开始处理节点(也就是在把节点的数值放进result数组中),这就造成了。分析一下为什么刚刚写的前序遍历的代码,不能和中序遍历通用呢,因为前序遍历的顺序是中左右,先访问的元素是中间节点,要处理的元素也是中间节点,所以刚刚才能写出相对简洁的代码,类似前序遍历,利用栈,根 左 右 顺序入栈可以实现 根 右 左 的结果。利用栈,根 右 左 顺序入栈可以实现 根 左 右 的处理顺序。原创 2024-02-06 22:56:50 · 299 阅读 · 1 评论 -
代码随想录day11:栈与队列part3,单调队列&&优先队列(堆)
为什么用小根堆:维持一个k个元素的小根堆,将时间复杂度从O(nlogn)降低到 O(nlogk),多于k个元素时加入元素把堆顶(频率最小的)元素删除,剩下维护的就是频率最大的k个元素了。单调队列应用,滑动窗口一进一出的过程很像队列的处理过程。原创 2024-02-05 16:00:30 · 174 阅读 · 1 评论 -
代码随想录day10:栈与队列part2,栈使用场景专题
不匹配的情况有三种,分别判断。不用库函数运行时间更短。原创 2024-02-03 22:47:01 · 208 阅读 · 1 评论 -
代码随想录day9:栈与队列part1,互相实现
简单的互相实现,拿纸画一下模拟过程即可。原创 2024-02-03 00:18:08 · 205 阅读 · 1 评论 -
代码随想录day8:字符串part2,KMP算法
next数组值含义:当前最长相等前后缀长度。j 同时表示:当前最长相等前后缀长度。j+1 表示:前缀末尾位置。i 表示:后缀末尾位置。原创 2024-02-02 00:21:03 · 243 阅读 · 0 评论 -
代码随想录day7:字符串part1,反转字符串的多种用法,StringBuilder用法
想一下,我们将整个字符串都反转过来,那么单词的顺序指定是倒序了,只不过单词本身也倒序了,那么再把单词反转一下,单词不就正过来了。反转字符串与反转链表的不同点:元素内存分布不同所以方法不同。举个例子,源字符串为:"the sky is blue "字符串也是一种数组,元素在内存中是连续分布。反转字符串与反转链表的相同点:都使用双指针。上题相同的,整体反转+局部反转 的思想。这样我们就完成了翻转字符串里的单词。StringBuilder的使用。不调库版本,练习代码功底。原创 2024-01-31 23:08:32 · 270 阅读 · 0 评论