自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 收藏
  • 关注

原创 代码随想录训练营总结篇

但是不得不说,两个月真的收获了很多,我觉得其实让我更自律了吧,感觉大一过得挺浑浑噩噩的,其实当时也有学业的目标但是贪玩,很多事都没做好,留下了很多的遗憾吧。事实确实如此,大学生活是容易让人迷茫的,但是是针对被迫选择了某个专业的大多数人吧,刚开始接触计算机,让人感到新奇,有趣,但伴随边际效应递减,满腔热血被不坚定的初心和日益晦涩难解的一道道编程题逐渐稀释。第一次参加这种形式的训练营,其实刚开始的时候很多顾虑,觉得时间不够,怕自己太菜,菜的丢人(虽然确实是哈哈哈哈哈哈)。今天也没有LeetCode。

2024-04-04 01:11:43 148

原创 代码随想录训练营第60天 | LeetCode 84.柱状图中最大的矩形、总结

感想:60天说长不长说短不短,突然的结束还有点不适应,感觉自己的掌握程度一般,再找时间二刷好了,就先只说这些吧,苦逼的大学生就是这样的,怎么到了大学作业反而越来越多了,还真是挺奇怪的。学到了很多新的知识,在完成题目的过程中对于底层逻辑有了更新的认知,

2024-03-30 00:06:20 184

原创 代码随想录训练营第59天 | LeetCode 503.下一个更大元素II、LeetCode 42. 接雨水

目录LeetCode 503.下一个更大元素II文章讲解:代码随想录(programmercarl.com)视频讲解:单调栈,成环了可怎么办?LeetCode:503.下一个更大元素II_哔哩哔哩_bilibili思路​​​​​​LeetCode 42. 接雨水文章讲解:代码随想录(programmercarl.com)视频讲解:单调栈,经典来袭!LeetCode:42.接雨水_哔哩哔哩_bilibili思路

2024-03-27 15:04:51 330 1

原创 代码随想录训练营第58天 | LeetCode 739. 每日温度、​​​​​​LeetCode 496.下一个更大元素 I

目录LeetCode 739. 每日温度文章讲解:代码随想录(programmercarl.com)视频讲解:单调栈,你该了解的,这里都讲了!LeetCode:739.每日温度_哔哩哔哩_bilibili思路​​​​​​LeetCode 496.下一个更大元素 I文章讲解:代码随想录(programmercarl.com)视频讲解:单调栈,套上一个壳子就有点绕了| LeetCode:496.下一个更大元素_哔哩哔哩_bilibili思路

2024-03-27 00:41:26 154 1

原创 代码随想录训练营第57天 | LeetCode 647. 回文子串、LeetCode 516.最长回文子序列、

代码如下:代码如下:

2024-03-25 21:08:24 354 1

原创 代码随想录训练营第55天 | LeetCode 583. 两个字符串的删除操作、​​​​​​LeetCode 72. 编辑距离、总结

文章讲解:代码随想录(programmercarl.com)

2024-03-24 10:37:46 288

原创 代码随想录训练营第54天 | LeetCode 392.判断子序列、​​​​​​LeetCode 115.不同的子序列

目录LeetCode 392.判断子序列文章讲解:代码随想录(programmercarl.com)视频讲解:动态规划,用相似思路解决复杂问题 | LeetCode:392.判断子序列_哔哩哔哩_bilibili思路​​​​​​LeetCode 115.不同的子序列文章讲解:代码随想录(programmercarl.com)视频讲解:动态规划之子序列,为了编辑距离做铺垫 | LeetCode:115.不同的子序列_哔哩哔哩_bilibili思路

2024-03-24 10:28:30 426

原创 代码随想录训练营第53天 | LeetCode 1143.最长公共子序列、LeetCode 1035.不相交的线、LeetCode 53. 最大子序和

目录LeetCode 1143.最长公共子序列文章讲解:代码随想录(programmercarl.com)视频讲解:动态规划子序列问题经典题目 | LeetCode:1143.最长公共子序列_哔哩哔哩_bilibili思路​​​​​​LeetCode 1035.不相交的线文章讲解:代码随想录(programmercarl.com)视频讲解:动态规划之子序列问题,换汤不换药 | LeetCode:1035.不相交的线_哔哩哔哩_bilibili思路​​​​​​LeetCode 53. 最大子序和文章讲解:代码

2024-03-24 10:20:42 237

原创 代码随想录训练营第52天 | LeetCode 300.最长递增子序列、​​​​​​LeetCode 674. 最长连续递增序列、LeetCode 718. 最长重复子数组

目录LeetCode 300.最长递增子序列文章讲解:代码随想录(programmercarl.com)视频讲解:动态规划之子序列问题,元素不连续!| LeetCode:300.最长递增子序列_哔哩哔哩_bilibili思路​​​​​​LeetCode 674. 最长连续递增序列文章讲解:代码随想录(programmercarl.com)视频讲解:动态规划之子序列问题,重点在于连续!| LeetCode:674.最长连续递增序列_哔哩哔哩_bilibili思路​​​​​​LeetCode 718. 最长重复

2024-03-21 21:21:26 137

原创 代码随想录训练营第51天 | LeetCode 309.最佳买卖股票时机含冷冻期、LeetCode 714.买卖股票的最佳时机含手续费、股票总结

目录LeetCode 309.最佳买卖股票时机含冷冻期文章讲解:代码随想录(programmercarl.com)视频讲解:动态规划来决定最佳时机,这次有冷冻期!| LeetCode:309.买卖股票的最佳时机含冷冻期_哔哩哔哩_bilibili思路​​​​​​LeetCode 714.买卖股票的最佳时机含手续费文章讲解:代码随想录(programmercarl.com)视频讲解:动态规划来决定最佳时机,这次含手续费!| LeetCode:714.买卖股票的最佳时机含手续费_哔哩哔哩_bilibili思路股

2024-03-19 19:16:17 211

原创 代码随想录训练营第50天 | LeetCode 123.买卖股票的最佳时机III、LeetCode 188.买卖股票的最佳时机IV

LeetCode 123.买卖股票的最佳时机III 文章讲解:代码随想录(programmercarl.com) 视频讲解:动态规划,股票至多买卖两次,怎么求? | LeetCode:123.买卖股票最佳时机III_哔哩哔哩_bilibili 思路 代码如下: ​​​​​​LeetCode 188.买卖股票的最佳时机IV 文章讲解:代码随想录(programmercarl.com) 视频讲解:动态规划来决定最佳时

2024-03-19 19:03:46 152

原创 代码随想录训练营第48天 | LeetCode 121. 买卖股票的最佳时机、​​​​​​LeetCode 122.买卖股票的最佳时机II

目录LeetCode 121. 买卖股票的最佳时机文章讲解:代码随想录(programmercarl.com)视频讲解:动态规划之 LeetCode:121.买卖股票的最佳时机1_哔哩哔哩_bilibili思路​​​​​​LeetCode 122.买卖股票的最佳时机II文章讲解:代码随想录(programmercarl.com)视频讲解:动态规划,股票问题第二弹 | LeetCode:122.买卖股票的最佳时机II_哔哩哔哩_bilibili思路

2024-03-19 18:52:51 183

原创 代码随想录训练营第47天 | LeetCode 198.打家劫舍、​​​​​​LeetCode 213.打家劫舍 II、​​​​​​LeetCode 337.打家劫舍 III

代码如下:

2024-03-19 18:43:05 127

原创 代码随想录训练营第46天 | LeetCode 139.单词拆分、动态规划:关于多重背包,你该了解这些!、总结

文章讲解:代码随想录(programmercarl.com)

2024-03-15 11:58:32 287

原创 代码随想录训练营第45天 | LeetCode 70. 爬楼梯(进阶版)、​​​​​​LeetCode 322. 零钱兑换、​​​​​​LeetCode 279.完全平方数

LeetCode 70. 爬楼梯(进阶版) 文章讲解:代码随想录(programmercarl.com) 思路 代码如下: ​​​​​​LeetCode 322. 零钱兑换 文章讲解:代码随想录(programmercarl.com) 视频讲解:装满背包最少的物品件数是多少?| LeetCode:322.零钱兑换_哔哩哔哩_bilibili 思路 代码如下: ​​​​​​LeetCo

2024-03-15 00:06:13 175

原创 代码随想录训练营第44天 | 动态规划:完全背包理论基础、​​​​​​LeetCode 518.零钱兑换II、​​​​​​LeetCode 377. 组合总和 Ⅳ

目录动态规划:完全背包理论基础文章讲解:代码随想录(programmercarl.com)视频讲解:带你学透完全背包问题!_哔哩哔哩_bilibili思路​​​​​​LeetCode 518.零钱兑换II文章讲解:代码随想录(programmercarl.com)视频讲解:518.零钱兑换II_哔哩哔哩_bilibili思路​​​​​​LeetCode 377. 组合总和 Ⅳ文章讲解:代码随想录(programmercarl.com)视频讲解:动态规划之完全背包,装满背包有几种方法?求排列数?| LeetC

2024-03-14 23:56:15 303

原创 代码随想录训练营第43天 | LeetCode 1049.最后一块石头的重量II、​​​​​​LeetCode 494.目标和、LeetCode 474.一和零

代码如下:

2024-03-12 19:49:47 150

原创 代码随想录训练营第41天 | 动态规划:01背包理论基础、动态规划:01背包理论基础(滚动数组)、LeetCode 416.分割等和子集

代码如下:代码如下:

2024-03-09 22:34:03 190

原创 代码随想录训练营第40天 | LeetCode 343. 整数拆分

代码如下:

2024-03-09 11:20:54 264

原创 代码随想录训练营第39天 | LeetCode 62.不同路径、​​​​​​LeetCode 63. 不同路径 II

LeetCode 62.不同路径 文章讲解:代码随想录(programmercarl.com) 视频讲解:动态规划中如何初始化很重要!| LeetCode:62.不同路径_哔哩哔哩_bilibili 思路 代码如下: ​​​​​​LeetCode 63. 不同路径 II 文章讲解:代码随想录(programmercarl.com) 视频讲解:动态规划,这次遇到障碍了| LeetCode:63. 不同路径 II_哔

2024-03-07 21:57:05 218

原创 代码随想录训练营第38天 | LeetCode 509.斐波那契数列、LeetCode 70. 爬楼梯、LeetCode 746. 使用最小花费爬楼梯

代码如下:代码如下:

2024-03-06 23:51:00 433

原创 代码随想录训练营第37天 | LeetCode 738.单调递增的数字、LeetCode 968.监控二叉树、

文章讲解:代码随想录(programmercarl.com)

2024-03-05 18:11:32 321

原创 代码随想录训练营第36天 | LeetCode 435. 无重叠区间、​​​​​​LeetCode 763.划分字母区间、LeetCode 56. 合并区间

最后用区间总数减去非交叉区间的个数就是需要移除的区间个数了。区间1,2,3,4,5,6都按照右边界排好序。确定是否与区间3也重贴:就是取区间1和区间2右边界的最小值,因为这个最小值之前的部分一定是区间1和区间2的重合部分,如果这个最小值也触达到区间3那么说明区间 1,2,3都是重合的。接下来就是找大于区间1结束位置的区间,是从区间4开始。区间4结束之后,再找到区间6,所以一共记录非交叉区间的个数是三个。先排序,让所有的相邻区间尽可能的重叠在一起,按左边界,或者右边界排序都可以,处理逻辑稍有不同。

2024-03-04 19:11:25 334

原创 代码随想录训练营第34天 | LeetCode 860.柠檬水找零、LeetCode 406.根据身高重建队列、LeetCode 452. 用最少数量的箭引爆气球

情况三:账单是20,优先消耗一个10和一个5,如果不够,再消耗三个5。情况一,情况二,都是固定策略,都不用我们来做分析了,而唯一不确定的其实在情况三。账单是20的情况,为什么要优先消耗一个10和一个5,因为美元10只能给账单20找零,而美元5可以给账单10和账单20找零,美元5更万能。​​​​​​​所以局部最优:遇到账单20,优先消耗美元10,完成本次找零。全局最优:完成全部账单的找零。如果按照k来从小到大排序,排完之后,会发现k的排列并不符合条件,身高也不符合条件,两个维度哪一个都没确定下来。

2024-03-02 22:30:05 427

原创 代码随想录训练营第33天 | LeetCode 1005.K次取反后最大化的数组和、LeetCode 134. 加油站、​​​​​​LeetCode 135. 分发糖果

2024-03-02 09:11:27 512

原创 代码随想录训练营第32天 | LeetCode 122.买卖股票的最佳时机 II、LeetCode 55.跳跃游戏、LeetCode 45.跳跃游戏 II

相当于(prices[3] - prices[2]) + (prices[2] - prices[1]) + (prices[1] - prices[0])。那么根据 prices 可以得到每天的利润序列:(prices[i] - prices[i - 1]).....(prices[1] - prices[0])。要从覆盖范围出发,不管怎么跳,覆盖范围内一定是可以跳到的,以最小的步数增加覆盖范围,覆盖范围一旦覆盖了终点,得到的就是最少步数。需要统计两个覆盖范围,当前这一步的最大覆盖和下一步最大覆盖。

2024-02-29 21:25:58 586

原创 代码随想录训练营第31天 | 理论基础、LeetCode 455.分发饼干、

大尺寸的饼干既可以满足胃口大的孩子也可以满足胃口小的孩子,那么就应该优先满足胃口大的。这里的局部最优就是大饼干喂给胃口大的,充分利用饼干尺寸喂饱一个,全局最优就是喂饱尽可能多的小孩。然后从后向前遍历小孩数组,用大饼干优先满足胃口大的,并统计满足小孩数量。局部最优:当前“连续和”为负数的时候立刻放弃,从下一个元素重新计算“连续和”,因为负数加上下一个元素 “连续和”只会越来越小。全局最优:选取最大“连续和”。局部最优:删除单调坡度上的节点(不包括单调坡度两端的节点),那么这个坡度就可以有两个局部峰值。

2024-02-28 20:10:49 844

原创 代码随想录训练营第30天 | 总结、​​​​​​LeetCode 332.重新安排行程、​​​​​​LeetCode 51.N皇后、LeetCode 37.解数独

文章讲解:代码随想录(programmercarl.com)​​​​​​LeetCode 332.重新安排行程文章讲解:代码随想录(programmercarl.com)

2024-02-27 23:44:14 660

原创 代码随想录训练营第29天 | LeetCode 491.递增子序列、LeetCode 46.全排列、​​​​​​LeetCode 47.全排列 II

首先排列是有序的,也就是说 [1,2] 和 [2,1] 是两个集合,这和之前分析的子集以及组合所不同的地方。可以看出元素1在[1,2]中已经使用过了,但是在[2,1]中还要在使用一次1,所以处理排列问题就不用使用startIndex了。而当当收集元素的数组path的大小达到和nums数组一样大的时候,说明找到了一个全排列,也表示到达了叶子节点。本题求子序列,很明显一个元素不能重复使用,所以需要startIndex,调整下一层递归的起始位置。

2024-02-26 18:03:45 561

原创 代码随想录训练营第27天 | LeetCode 93.复原IP地址、LeetCode 78.子集、LeetCode 90.子集II

其实子集也是一种组合问题,因为它的集合是无序的,子集{1,2} 和 子集{2,1}是一样的。既然是无序,取过的元素不会重复取,写回溯算法的时候,for就要从startIndex开始,而不是从0开始。其实只要意识到这是切割问题,切割问题就可以使用回溯搜索法把所有可能性搜出来。本题就是其实就是子集问题的基础上加上了去重。

2024-02-24 23:36:27 666

原创 代码随想录训练营第26天 | LeetCode 39. 组合总和、LeetCode 40.组合总和II、​​​​​​LeetCode 131.分割回文串

组合问题可以抽象为树形结构,那么“使用过”在这个树形结构上是有两个维度的,一个维度是同一树枝上使用过,一个维度是同一树层上使用过。回看一下题目,元素在同一个组合内是可以重复的,怎么重复都没事,但两个组合不能相同。所以我们要去重的是同一树层上的“使用过”,同一树枝上的都是一个组合里的元素,不用去重。定义两个全局变量,二维数组result存放结果集,数组path存放符合条件的结果。sum等于target的时候,需要收集结果,单层for循环依然是从startIndex开始,搜索candidates集合。

2024-02-23 21:54:35 1185

原创 代码随想录训练营第25天 | LeetCode 216.组合总和III、LeetCode 17.电话号码的字母组合

本题就是在[1,2,3,4,5,6,7,8,9]这个集合中找到和为n的k个数的组合。相对于组合无非就是多了一个限制,本题是要找到和为n的k个数的组合,而整个集合已经是固定的了[1,...,9]。本题k相当于树的深度,9就是树的宽度。可以使用map或者定义一个二维数组,使得数字和字母映射。用回溯法解决n个for循环的问题。

2024-02-22 19:42:42 913

原创 代码随想录训练营第24天 | 理论基础、​​​​​​LeetCode 77. 组合

定义两个全局变量,一个用来存放符合条件单一结果,一个用来存放符合条件结果的集合。当path这个数组的大小如果达到k,说明我们找到了一个子集大小为k的组合了,在图中path存的就是根节点到叶子节点的路径。

2024-02-21 09:12:27 813

原创 代码随想录训练营第23天 | LeetCode 669. 修剪二叉搜索树、LeetCode 108.将有序数组转换为二叉搜索树、​​​​​​LeetCode 538.把二叉搜索树转换为累加树、总结

其实这就是一棵树,大家可能看起来有点别扭,换一个角度来看,这就是一个有序数组。从树中可以看出累加的顺序是右中左,所以我们需要反中序遍历这个二叉树,然后顺序累加就可以了。的时候直接return NULL,一波修改。然而[1, 3]区间在二叉搜索树的中可不是单纯的节点3和左孩子节点0就决定的,还要考虑节点0的右子树。直接想法就是:递归处理,然后遇到。

2024-02-20 22:55:30 986

原创 代码随想录训练营第22天 | LeetCode 235. 二叉搜索树的最近公共祖先、LeetCode 701.二叉搜索树中的插入操作、LeetCode 450.删除二叉搜索树中的节点

其实可以不考虑题目中提示所说的改变树的结构的插入方式。只要按照二叉搜索树的规则去遍历,遇到空节点就插入节点就可以了。可以通过递归返回值删除节点。遇到空返回,说明没找到删除的节点遍历到空节点直接返回了。

2024-02-19 22:58:43 969 1

原创 代码随想录训练营第20天 | LeetCode 530.二叉搜索树的最小绝对差、LeetCode 501.二叉搜索树中的众数、LeetCode 236. 二叉树的最近公共祖先

如果不是二叉搜索树,最直观的方法一定是把这个树都遍历了,用map统计频率,把频率排个序,最后取前面高频的元素的集合。是二叉搜索树,遍历有序数组的元素出现频率,从头遍历,那么一定是相邻两个元素作比较,然后就把出现频率最高的元素输出就可以了。二叉树回溯的过程就是从低到上。后序遍历(左右中)就是天然的回溯过程,可以根据左右子树的返回值,来处理中节点的逻辑。

2024-02-17 22:46:51 1198 1

原创 代码随想录训练营第19天 | LeetCode 654.最大二叉树、LeetCode 617.合并二叉树、​​​​​​LeetCode 700.二叉搜索树中的搜索、​​​​​​LeetCode 98.

但是需要主义的是不能单纯的比较左节点小于中间节点,右节点大于中间节点。构造树一般采用的是前序遍历,因为先构造中间节点,然后递归构造左子树和右子树。其实和遍历一个树逻辑是一样的,只不过传入两个树的节点,同时操作。本题其实就是在二叉搜索树中搜索一个节点。

2024-02-16 23:35:01 1095 1

原创 代码随想录训练营第18天 | LeetCode 513.找树左下角的值、​​​​​​LeetCode 112. 路径总和、

首先要是最后一行,然后是最左边的值。找最左边可以使用前序遍历(当然中序,后序都可以,因为本题没有 中间节点的处理逻辑,只要左优先就行),保证优先左边搜索,然后记录深度最大的叶子节点,此时就是树的最后一行最左边的值。(如果需要搜索整棵二叉树且需要处理递归返回值,递归函数就需要返回值。如果要搜索其中一条符合条件的路径,那么递归一定需要返回值,因为遇到符合条件的路径了就要及时返回。参数:需要二叉树的根节点,还需要一个计数器,这个计数器用来计算二叉树的一条边之和是否正好是目标和,计数器为int型。

2024-02-15 23:20:59 1459 1

原创 代码随想录第17天 | LeetCode 110.平衡二叉树、​​​​​​​LeetCode 257. 二叉树的所有路径​、

参数:当前传入节点。返回值:以当前传入节点为根节点的树的高度。递归的过程中依然是遇到空节点了为终止,返回0,表示当前节点为根节点的树高度为0。因为题目中其实没有说清楚左叶子究竟是什么节点,那么我来给出左叶子的明确定义:节点A的左孩子不为空,且左孩子的左右孩子都为空(说明是叶子节点),那么A节点的左孩子为左叶子节点。判断当前节点是不是左叶子是无法判断的,必须要通过节点的父节点来判断其左孩子是不是左叶子。如果该节点的左节点不为空,该节点的左节点的左节点为空,该节点的左节点的右节点为空,则找到了一个左叶子。

2024-02-14 23:28:36 1425 1

原创 代码随想录训练营第16天 | LeetCode 104.二叉树的最大深度、​​​​​​LeetCode 111.二叉树的最小深度、LeetCode 222.完全二叉树的节点个数

因为根节点的高度就是二叉树的最大深度,所以本题中我们通过后序求的根节点高度来求的二叉树最大深度。

2024-02-08 23:14:31 1894

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除