![](https://img-blog.csdnimg.cn/9703ee0578784d3994898cb4682c1ab8.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
代码随想录刷题
一步步跟着代码随想录系统的刷题,https://programmercarl.com/
邓建雄
这个作者很懒,什么都没留下…
展开
-
代码随想录34|62.不同路径,63. 不同路径 II,343. 整数拆分
int。原创 2023-09-12 23:07:43 · 317 阅读 · 0 评论 -
代码随想录33|509. 斐波那契数,70. 爬楼梯,746. 使用最小花费爬楼梯, 34. 在排序数组中查找元素的第一个和最后一个位置
代码思路:使用二分查找法,找到目标值的位置,然后左右扩散去寻找元素的左右边界。mid++;break;原创 2023-09-11 23:08:22 · 307 阅读 · 0 评论 -
代码随想录32|738.单调递增的数字,968.监控二叉树,56. 合并区间
738.单调递增的数字。原创 2023-09-11 22:58:56 · 255 阅读 · 0 评论 -
代码随想录31|452. 用最少数量的箭引爆气球,435. 无重叠区间,763.划分字母区间
【代码】代码随想录31|452. 用最少数量的箭引爆气球,435. 无重叠区间,763.划分字母区间。原创 2023-09-08 22:29:35 · 241 阅读 · 0 评论 -
代码随想录30|860.柠檬水找零,406.根据身高重建队列
【代码】代码随想录30|860.柠檬水找零,406.根据身高重建队列。原创 2023-09-06 22:48:31 · 46 阅读 · 0 评论 -
代码随想录29| 1005.K次取反后最大化的数组和,134. 加油站,135. 分发糖果
【代码】代码随想录29| 1005.K次取反后最大化的数组和。原创 2023-08-31 21:47:29 · 106 阅读 · 0 评论 -
代码随想录28| 122.买卖股票的最佳时机II, 55. 跳跃游戏, 45.跳跃游戏II
【代码】代码随想录28| 122.买卖股票的最佳时机II, 55. 跳跃游戏, 45.跳跃游戏II。原创 2023-08-30 22:44:52 · 99 阅读 · 0 评论 -
代码随想录27|455.分发饼干,376. 摆动序列,53. 最大子序和
【代码】代码随想录27|455.分发饼干,376. 摆动序列,53. 最大子序和。原创 2023-08-29 21:46:44 · 114 阅读 · 0 评论 -
代码随想录26|回溯总结
在树形结构中子集问题是要收集所有节点的结果,而组合问题是收集叶子节点的结果。切割过的地方不能重复切割所以递归函数需要传入i + 1。startIndex来控制for循环的起始位置。:参数、终止条件、for遍历(递归、回溯)原创 2023-08-25 22:21:06 · 120 阅读 · 0 评论 -
代码随想录24| 93.复原IP地址, 78.子集, 90.子集II
【代码】代码随想录24| 93.复原IP地址, 78.子集, 90.子集II。原创 2023-08-23 22:34:14 · 93 阅读 · 0 评论 -
代码随想录23| 39. 组合总和 , 40.组合总和II, 131.分割回文串
代码思路:传入的参数:传入的参数每层需要遍历的元素,目标值,和值,开始的索引。递归结束条件:sum 等于target递归遍历:从startIndex开始,因为可以重复取元素,所以传入递归的索引是i, 而不是i + 1.原创 2023-08-21 21:41:35 · 94 阅读 · 0 评论 -
代码随想录22| 216.组合总和III, 17.电话号码的字母组合
代码思路:回溯三部曲:1.确定函数参数:n,k,sum,startIndex;2.结束条件,path == k,并且如果sum==n 结束递归3.递归回溯逻辑。原创 2023-08-20 21:42:25 · 701 阅读 · 0 评论 -
代码随想录21|回溯算法理论基础, 77. 组合
【代码】代码随想录21|回溯算法理论基础, 77. 组合。原创 2023-08-19 23:26:54 · 56 阅读 · 0 评论 -
代码随想录20| 669. 修剪二叉搜索树, 108.将有序数组转换为二叉搜索树, 538.把二叉搜索树转换为累加树
最近工作加班多,后面补,保持习惯。原创 2023-08-19 21:58:23 · 36 阅读 · 0 评论 -
代码随想录19|235. 二叉搜索树的最近公共祖先,701.二叉搜索树中的插入操作, 450.删除二叉搜索树中的节点
代码思路:利用二叉搜索树的性质,公共祖先一定在p,q的中间。原创 2023-08-17 22:59:27 · 30 阅读 · 0 评论 -
代码随想录18| 530.二叉搜索树的最小绝对差, 501.二叉搜索树中的众数, 236. 二叉树的最近公共祖先
代码思路:二叉搜索树可以使用中序遍历的结果就是有序的,然后两两相减就可以找到最小差。原创 2023-08-16 22:57:00 · 27 阅读 · 0 评论 -
代码随想录17| 654.最大二叉树, 617.合并二叉树,700.二叉搜索树中的搜索,98.验证二叉搜索树
代码思路:递归结束条件是数组里面只有一个元素,返回。找到最大值的索引位置,划分左右子树,然后递归的处理。原创 2023-08-15 22:19:01 · 42 阅读 · 0 评论 -
代码随想录16|513.找树左下角的值,112. 路径总和,
代码思路:树的最最下角的值一定在最底层,使用maxlen记录最底下的层,然后再去判断是否是最左下角的值。原创 2023-08-14 23:45:42 · 74 阅读 · 0 评论 -
代码随想录15| 110.平衡二叉树, 257. 二叉树的所有路径, 404.左叶子之和
代码思路:平衡二叉树的性质是左右子树相差为1,超过1就不是了,依然利用后序遍历对左右子树的高度进行比较,如果大于1了用-1左记号。代码思路:path 用来记录每一条路径,result用来记录所有的路径,递归的结束条件是当前节点的左右子树都为空。暂时很多没有理解的地方。原创 2023-08-12 22:42:59 · 32 阅读 · 0 评论 -
代码随想录14| 104.二叉树的最大深度, 111.二叉树的最小深度, 222.完全二叉树的节点个数
代码思路:利用二叉树的后序遍历,得到二叉树的最大高度就是二叉树的最大深度。原创 2023-08-10 23:19:47 · 34 阅读 · 0 评论 -
代码随想录13| 102. 二叉树的层序遍历,226.翻转二叉树, 101. 对称二叉树
代码思路:利用递归法去逐层遍历出二叉树的节点,BFS.int二叉树的层序遍历还有9题类似的,以后有时间再补上。原创 2023-08-09 23:11:32 · 41 阅读 · 0 评论 -
代码随想录12|144. 二叉树的前序遍历,145. 二叉树的后序遍历, 94. 二叉树的中序遍历
代码思路:前序遍历的顺序是中左右,首先确定递归的结束条件是当前的节点没有子节点了,在按照中左右的顺序存储二叉树的元素。原创 2023-08-09 22:20:02 · 33 阅读 · 0 评论 -
代码随想录11| 239. 滑动窗口最大值, 347.前 K 个高频元素
代码思路:自己来创建一个单调栈用来维护滑动窗口的最大值始终保持在栈的最前面.其它的无关的元素可以不用加入栈。原创 2023-08-08 23:54:03 · 34 阅读 · 0 评论 -
代码随想录10| 20. 有效的括号, 1047. 删除字符串中的所有相邻重复项, 150. 逆波兰表达式求值
代码思路:利用栈的先进后出原则,分析题目可知,如果遍历字符串,往栈压字符,必定是成对的出现在栈里面,这种思维类似与消消乐,如果栈里面没有成对出现的字符,就返回false,最后栈里面都是空返回true.原创 2023-08-07 23:12:24 · 59 阅读 · 1 评论 -
代码随想录09| 232.用栈实现队列, 225. 用队列实现栈
代码思路:队列是先进先出,栈是先进后出,要用栈来实现队列的功能,可以使用两个栈来实现,一个栈用来输入数据,一个栈用来输出数据。原创 2023-08-04 22:41:23 · 58 阅读 · 1 评论 -
代码随想录08|字符串的总结
最近感觉刷题有点力不从心,没有刚开始的激情满满了,坚持每天写一点东西,就算不想刷题,但是还是要坚持写点东西,不然很容易就断了,这种写东西的习惯不能停止,希望自己能够继续坚持下去,刷完代码随想录吧!字符串这一章节使用双指针的情况很多,解题的思路很重要,解题的思路好,代码的简洁明了,不然就会出现很多冗余代码,不仅影响自己的代码质量,更会让自己混乱出错。字符串这一章节目前还有KMP算法没有深入了解过,因为最近忙于工作,回家已经很晚了,只能放到后面有时间再来研究。总之就是需要多练习解题的思维。原创 2023-08-03 23:39:31 · 46 阅读 · 0 评论 -
代码随想录07| 344.反转字符串, 541. 反转字符串II
代码思路:可以利用对撞指针解题,交换首位元素即可。原创 2023-08-03 23:22:12 · 46 阅读 · 0 评论 -
代码随想录day06|454.四数相加II, 383. 赎金信,15. 三数之和, 18. 四数之和
代码思路:类似之前做的两数之和的题目,这次利用两层遍历先求出两个数组里面的和,在将剩下的两个数组进行两层遍历求和,然后和两数之和的思路相同通过target - 其中的两数和,在map 里面去找对应的值。原创 2023-08-02 22:24:28 · 50 阅读 · 1 评论 -
代码随想录05| 242.有效的字母异位词, 349. 两个数组的交集, 202. 快乐数, 1. 两数之和
代码思路:先用一个数组记录,遍历第一个字符串的每一个字符并用数组记录出现的次数,然后再去遍历第二个字符,如果这个字符出现再数组里面就减去出现的次数。最后遍历记录的数字里面有没有不为0的元素。原创 2023-08-01 23:35:01 · 44 阅读 · 1 评论 -
代码随想录04|24. 两两交换链表中的节点,19.删除链表的倒数第N个节点,面试题 02.07. 链表相交, 142.环形链表II
代码思路:建立虚拟头节点,分析循环结束条件,如果链表是奇数最后一个元素不需要交换,则结束条件是cur->next->next!= nullptr,如果链表是偶数则结束条件是 cur->next!= nullptr。然后按照链表交换的原则,调整需要交换元素的两个指针的指向。原创 2023-07-30 19:57:24 · 198 阅读 · 1 评论 -
代码随想录03| 203.移除链表元素,707.设计链表, 206.反转链表
代码思路:单向链表移除元素,将当前节点的上一个节点的下一个节点连接上当前节点的下一个节点,注意移除头结点有些特殊,可以设置虚拟节点来省去单独处理头节点的过程。解题思路:使用结构题定义链表的基本属性,按照题目要求实现链表的功能。代码思路:通过递归将链表的指针反向。原创 2023-07-28 23:50:12 · 371 阅读 · 1 评论 -
代码随想录02|977.有序数组的平方,209.长度最小的子数组,59.螺旋矩阵II
代码思路:通过前期的分析可知,数组元素的平方的最大值一定是在数组的左右两边,因此可以通过对撞指针来判断数组两边的数的大小,将大的值从后往前存放在一个新的数组里面,直到左右两个指针将整个数组检查完结束,返回存放我们排好序的新数组即可。原创 2023-07-27 22:57:51 · 465 阅读 · 1 评论 -
代码随想录01|704.二分查找,27.移除元素
快慢指针法:快指针遍历整个数组里面的元素,查找不需要移除的元素,慢指针记录有效元素的最后一个元素的索引,一旦快指针发现了有效元素就将该元素和慢指针的位置交换,直到快指针遍历完整个数组,返回慢指针就是移除元素后的数组长度。使用两层循环遍历数组元素,外层遍历寻找需要移除的元素,内存遍历将需要移除的元素进行覆盖,因为数组是连续空间存储,覆盖一个元素,后面的元素都要进行移动。解题思路:使用二分查找法,在定义的有效区间中查找元素,区间定义有两种方式,左闭右开和左闭右闭这两种区间,根据自己的习惯选择。原创 2023-07-26 19:57:39 · 436 阅读 · 1 评论