代码随想录刷题打卡记录
MeloHX
这个作者很懒,什么都没留下…
展开
-
代码随想录刷题打卡day43
2.组合个数的问题递推公式dp[j] = dp[j-nums[i]],dp[j]表示装满j的背包有dp[j]种方法(没理解,但是记下来)1.完全背包的遍历顺序:先背包后物品是排列数,先物品后背包是组合数。3.因为可以重复选择,所以从小到大遍历物品。原创 2023-11-30 12:01:08 · 471 阅读 · 0 评论 -
代码随想录刷题打卡day53
且顺序不可调换,和上一题一模一样。学到了抽象提取问题的方法。这道题用贪心算法写过,回顾的时候也很清晰。原创 2023-11-14 10:53:34 · 147 阅读 · 0 评论 -
代码随想录刷题打卡day40
(i-j)*j,相当于把i拆成i-j和j两个数字,而dp[i-j]*j是把i拆成大于两个数字,因为dp[i]表示i被拆之后得到的最大积。代码不难,思路比较重要。原创 2023-11-01 11:25:34 · 168 阅读 · 0 评论 -
代码随想录刷题打卡day35
这道题和打气球类似,一开始没写出来,写了一遍打气球后就写出了,棒哦。不敢相信这道题我也写了,我好棒。原创 2023-10-31 11:23:45 · 140 阅读 · 0 评论 -
代码随想录刷题打卡day36
【代码】代码随想录刷题打卡day36。原创 2023-10-31 11:16:36 · 143 阅读 · 0 评论 -
代码随想录刷题打卡day38
【代码】代码随想录刷题打卡day38。原创 2023-10-31 11:12:17 · 162 阅读 · 0 评论 -
代码随想录刷题打卡day39
【代码】代码随想录刷题打卡day39。原创 2023-10-31 11:00:46 · 47 阅读 · 0 评论 -
代码随想录刷题打卡day28
举个栗子,当我们第一次从[0 1 2]中选了1,此时used[0 1 0],在进入backtracking后(树枝)nums[i]重新开始从nums[0-2]遍历,那么nums[0]的used[0]=false表示没用,加入到path,而nums[1]的uesd[1]=true,表示path中已经有1了。是一样的,唯一的不同在于,全排列的for循环是从0开始,(那么下一层也会遍历到自身)因此要多一层判断,判断当前的数字是否被用过 if(used[i]==false),没有的话才进行下面的操作。原创 2023-10-20 11:33:16 · 73 阅读 · 1 评论 -
代码随想录刷题打卡day26
这道题和之前的题不一样的地方在于,他的数组是有重复数字的,而且要求一组结果中可以有这些重复数字(树枝),但是层之间不能有重复(树层)第一题依旧是回溯算法的问题,越来越顺畅了,今天思路和老师的思路一模一样,代码也是自己写的,但一些小细节还是要多加注意。原创 2023-10-19 11:20:57 · 136 阅读 · 1 评论 -
代码随想录刷题打卡day27
这道题就是搜集所有节点,包括了空节点,思路很简单,但是要注意在回溯时要先收集结果,以防漏掉自身,代码中这点也标注了。for循是遍历层,而baktracking遍历树枝。本题数组有重复,但要求结果不重复,和之前做的。原创 2023-10-19 11:18:17 · 179 阅读 · 1 评论 -
代码随想录刷题打卡day25
思路和之前的组合问题一样,如果输入两个数字,那么树的深度就是2,当index遍历到2时就可以收割答案了。和昨天的组合体很像,自己也能写出来,但是单层回溯这块第一次没完整写出来,看了解析就顺畅了。原创 2023-10-17 10:47:30 · 47 阅读 · 1 评论 -
代码随想录刷题打卡day24
今天开始回溯算法,回溯算法用于组合,分割,子集,排列,棋盘问题等。所有回溯法的问题都可以抽象为树形结构。回溯三部曲为:1.确定返回值 2.确定终止条件 3.确定单层逻辑。原创 2023-10-16 10:25:02 · 55 阅读 · 1 评论 -
代码随想录刷题打卡day22
有点没搞懂递归的返回值。原创 2023-10-15 09:52:11 · 57 阅读 · 1 评论 -
代码随想录刷题打卡day21
搜索到的第一个位于p,q之间的数字即我们要找的结点。前两天参加姐姐的婚礼,拉了两天,会慢慢补起来的。这个只要遍历到空结点就新添加一个结点就行。原创 2023-10-13 22:32:31 · 83 阅读 · 0 评论 -
代码随想录刷题打卡day17
看了视频明白的,代码自己就能写出来,引用传递的回溯方法懂了,但是精简代码中如何用值传递回溯还没看懂。后序遍历递归法实现,第一次写的时候没有想到在每一个结点处都要判断返回一次,导致写错。原创 2023-10-09 15:37:17 · 57 阅读 · 1 评论 -
代码随想录刷题打卡day14
模板,记下来,也理解了。原创 2023-10-08 22:32:53 · 121 阅读 · 1 评论 -
代码随想录刷题打卡day15
思想和上一题差不多,但是有一个坑要注意,深度是根节点到叶子的距离,因此如果存在莫个结点的左树或者右树为空的情况,不能只加到为空的位置,而是:若左树为空就1+右树最小深度,右树同理,最后再取二者最小值加1。通过后序遍历,用递归法求得每个节点左树右树的深度。为什么采用后序遍历,因为最后访问根节点会将迭代的值返回给根节点。最后取左右最大的深度+1(加根节点本身)即可。这道题我选择了和第一题一样的后序遍历法,自己写出来的棒呆!原创 2023-10-09 10:18:22 · 137 阅读 · 1 评论