代码随想录
文章平均质量分 63
郭子婷
这个作者很懒,什么都没留下…
展开
-
代码随想录算法训练营第44天 |完全背包518、377
1.首先确定是完全背包问题,因为一个物品可以无限个数投放。2. 是排列问题,和顺序有关系,所以先背包在物品。1.完全背包+组合问题。原创 2023-07-19 09:02:58 · 144 阅读 · 0 评论 -
代码随想录算法训练营第42天 |初涉0-1 背包问题、416
1.2.初次见面,非常惨败。原创 2023-07-14 09:01:04 · 136 阅读 · 0 评论 -
代码随想录算法训练营第41天 |动态规划-两道题都不会343、96
动态规划、for循环嵌套原创 2023-07-12 09:35:41 · 118 阅读 · 0 评论 -
代码随想录算法训练营第39天 |62(第一次接触)、63
1.本次题型为不同路径2.如何给二维数组中一部分数据赋值。原创 2023-07-11 11:36:45 · 644 阅读 · 0 评论 -
代码随想录算法训练营第38天 |动态规划开启509(跳过)、70(跳过)、746
动态规划5步曲:1.确定dp数组以及下标含义2.确定递推公式3.dp数组如何优化4.确定遍历顺序5.举例推导dp数组。原创 2023-07-11 11:36:31 · 53 阅读 · 1 评论 -
代码随想录算法训练营第34天 |1005、134(收藏)、135(收藏)
1.学会在原来K上操作2.while循环和for循环使用条件,while更适合在环形中使用。原创 2023-07-02 16:44:42 · 61 阅读 · 1 评论 -
代码随想录算法训练营第32天 |122、55、45(收藏试题55/45)
本次训练的是贪心算法相关习题53题给出了如何求去当前覆盖面积和下一步覆盖面积的解答。原创 2023-06-24 15:53:26 · 73 阅读 · 0 评论 -
代码随想录算法训练营第31天 |贪心算法 455、376、53
第三种:单调平坡:jutitrick就是将prediff=curdiff放在判断条件里,不要一直赋值,而是不同才赋值。第一种:存在平坡:解决的办法就是首先判断取平坡中的首选素还是尾元素,假设取尾元素,那么将等于判断加入前面。1.关键点在于有可能饼干数量多,也有可能孩子数量多,循环条件要确定好!第二种:首尾元素:默认加入尾元素,则初始为1。最大摆动序列问题,分了三种情况叙述,1.本质就是和要为正,才有意义。原创 2023-06-23 15:52:00 · 95 阅读 · 1 评论 -
代码随想录算法训练营第28天 | 93. 复原 IP 地址、78. 子集、90. 子集 II
break continue 同一层循环原创 2023-06-10 20:48:59 · 42 阅读 · 0 评论 -
代码随想录算法训练营第24天 |回溯算法理论讲解、77. 组合
1.看着卡哥那个模版,有三个明确,第一返回值,我自己考虑了有返回值,返回值为符合条件的组合,第二:终止条件,终止条件为当数组中长度为k时,即返回符合条件的组合;第三:单层操作,首先自己写了两个循环,然后使用了backtracking,pop()回溯一下。1.看到carl画的那个图,才明白递归加嵌套的含义,对模版也有了更深的了解,首先明确在使用回溯算法时候,都将其转化成树形图理解,原创 2023-06-07 09:45:00 · 44 阅读 · 0 评论 -
代码随想录算法训练营第18天 |、112. 路径总和、113. 路径总和 II、106. 从中序与后序遍历序列构造二叉树、105. 从前序与中序遍历序列构造二叉树
1.在利用前序遍历求解问题时,会用到回溯,有机会总结一下,回溯的呈现方式就是pop()。2.原创 2023-06-03 21:45:54 · 42 阅读 · 0 评论 -
代码随想录算法训练营第17天 |110. 平衡二叉树、257. 二叉树的所有路径、404. 左叶子之和
1.对于前序遍历:为什么要写。原创 2023-05-30 22:59:59 · 84 阅读 · 0 评论 -
代码随想录算法训练营第15天 |102 二叉树的层序遍历、226.翻转二叉树、101. 对称二叉树
针对二叉树的问题,解题之前一定要想清楚究竟是前中后序遍历,还是层序遍历。二叉树解题的大忌就是自己稀里糊涂的过了(因为这道题相对简单),但是也不知道自己是怎么遍历的。原创 2023-05-28 19:45:20 · 43 阅读 · 0 评论 -
代码随想录算法训练营第14天 | 144. 二叉树的前序遍历、145. 二叉树的后序遍历、 94. 二叉树的中序遍历
1.递归需要那些参数参与运算,需要的返回值是什么2.递归的终止条件是什么->终止条件没有或者不对会导致栈溢出3.确定单层递归的逻辑:例如二叉树中前序遍历是中左右的循序。原创 2023-05-24 09:54:11 · 36 阅读 · 0 评论 -
代码随想录算法训练营第13天 | 239. 滑动窗口最大值(deque 双向队列)、347. 前 K 个高频元素(heap)
1.了解了两个python中两个库:deque,heapq2.了解了两个专业名词:单调队列,优先级队列,注意两者定义3.抽象能力,比如滑动窗口,将最大值放在队列端口,不维护最小值等等,要多想4.收获:要掌握单调队列的写法。原创 2023-05-24 08:52:36 · 56 阅读 · 0 评论 -
代码随想录算法训练营第11天 | 20. 有效的括号 、1047. 删除字符串中的所有相邻重复项、 150. 逆波兰表达式求值
1.栈用在括号匹配,括号左右不想等,用栈匹配很巧妙2.在循环字符串时:可以考虑利用:for each_s in s:形式,会节省代码行数3.在进行重复删除,逆波兰都会用到栈,找到其中的共性就是,在遍历一边字符串时,被遍历过了元素也要被重复使用,而且重复使用的元素通常来说都是被操作元素的前一个元素,例如abbaca,要删除bb,之后就又是开头的a被利用,此时就要考虑栈,栈的特性就是先进后出。原创 2023-05-22 20:48:59 · 56 阅读 · 1 评论 -
代码随想录算法训练营第九天 | 232.用栈实现队列 、225. 用队列实现栈
1.注意python中一些函数的用法,例如pop函数,以及pop(0),虽然本题没有用到pop(0),但是pop(0)的时间复杂度是O(n)原创 2023-05-20 21:03:05 · 168 阅读 · 1 评论 -
代码随想录算法训练营第八天 | 344.反转字符串 、 541. 反转字符串II、 剑指Offer 05.替换空格、 151.翻转字符串里的单词、剑指Offer58-II.左旋转字符串
1.应该是用了切片功能,切片功能的优势在于不用判断边界条件,比自己写的丝滑很多,因为切片功能的条件时,当cur[i,i+k]中的i+k大于列表最后一个值时,默认返回最后一个值。1.先移除空格,本题和移除元素有不同之处在于这个移除空格需要开辟一个新的空间,因为移除后数组元素变小。1.自己在移除空格代码时,无法解决结尾为多个空格问题,而且代码逻辑太乱,不清楚。1.题解就是先对前k个翻转,再对n-k翻转,然后在全部翻转。1.用了三个指针,判断了最后的字符串长度,有点繁琐。字符串也可以切片,不仅仅是列表。原创 2023-05-20 09:55:27 · 126 阅读 · 2 评论 -
代码随想录算法训练营第七天 | 454.四数相加II、15.三数之和、 18. 四数之和
在多重while嵌套结构中使用break,会退出距离break最近的那一层while循环,且多从if嵌套对break无约束作用,会跳出最外层if,寻找与之最近的最内层while跳出。在多重while嵌套结构中使用break,会退出距离break最近的那一层while循环,且多从if嵌套对break无约束作用,会跳出最外层if,寻找与之最近的最内层while跳出。2.当给出目标值是target时候,就要考虑是否为负数,和三数之和有什么不同的地方呢,主要是在break时,即剪枝的时候要注意。原创 2023-05-17 22:55:56 · 108 阅读 · 0 评论 -
代码随想录算法训练营第四天 | 24 两两交换链表、19删除链表的倒数第几、面试题 02.07. 链表相交、142.环形链表II
1.为了使快慢指针间隔为n(为的是当快指针在末尾时,慢指针在要删除节点的前一个节点),那么也就是让快指针先走n步,其实就可以先一个while循环,让快指针走到第n步;3.根据上述要完成的操作,可以明确,不仅要找到虚拟头节点的next不为空,还需要保证next.next不为空,因此while(cur.next and cur.next.next)1.判断相交,求出A链表与B链表的长度,然后求出差值,先让长链表先走n步,之后两个链表一起前进,当链表A,Bd的下一个指针相等时,即为相交点。原创 2023-05-16 14:12:43 · 38 阅读 · 0 评论 -
代码随想录算法训练营第三天 | 206翻转链表、707设计链表、203 移除链表
要抽象翻转的概念,比如就是将链表中某一节点的指针指向前一个节点,那么就是翻转利用双指针,一个指向当前节点,一个指向当前节点的前一个节点因此,对于头节点来说之后,就要将 cur.next 指向pre,这里有一个坑。如果直接将cur.next = pre,那么我们无法得知原来链表中头节点的下一个节点,因为我们寻找下一个节点的方式是利用cur.next,但此时cur.next = pre。因此,在翻转前,我们需要加一个变量来临时存储初始的cur.next。原创 2023-05-14 09:54:34 · 53 阅读 · 0 评论 -
代码随想录算法训练营第二天 | 977有序数组平方、 209.长度最小的子数组、59.螺旋矩阵II
题目链接:https://leetcode.cn/problems/minimum-size-subarray-sum/视频讲解:https://www.bilibili.com/video/BV1tZ4y1q7XE。原创 2023-05-13 00:46:55 · 153 阅读 · 0 评论 -
代码随想录算法训练营第一天 | 704 二分查找、35移除函数
该题重点在于理解左闭右闭,左闭右开两种不同的边界规则,以及不同边界规则下对应的赋值操作例如在:while(left<right),中间这个比较运算符是与边界规则有逻辑关系的,不是随便一拍脑门子写出来的,例如对于[left,right],while(left<=right)是满足的,同样的,在赋值时right=middle-1,left = middle+1.原创 2023-05-10 22:51:55 · 216 阅读 · 1 评论