自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 代码随想录算法训练营第六十三天 | 84. 柱状图中最大的矩形

代码随想录算法训练营第六十三天 | 84. 柱状图中最大的矩形

2023-10-10 08:00:51 116

原创 代码随想录算法训练营第六十一天 | 503.下一个更大元素II & 42. 接雨水

代码随想录算法训练营第六十一天 | 503.下一个更大元素II & 42. 接雨水

2023-10-09 07:20:25 112

原创 代码随想录算法训练营第六十天 | 739. 每日温度 & 496.下一个更大元素 I

否则,将栈顶元素出栈(对于栈顶元素,它找到了它的答案,即下标之差)维护一个单调递减(可以等于)的栈,栈内存的是元素的下标。循环比较记录结果,直到当前元素入栈后,栈依然单调递减。和前面差不多,只不过需要返回的结果要处理下。当前元素小于等于栈顶元素时,直接入栈。2. 下一个更大元素 I。

2023-10-07 08:02:30 167

原创 代码随想录算法训练营第五十九天 | 647. 回文子串 & 516.最长回文子序列

代码随想录算法训练营第五十九天 | 647. 回文子串 & 516.最长回文子序列

2023-10-06 10:04:43 186

原创 代码随想录算法训练营第五十八天 | 583. 两个字符串的删除操作 & 72. 编辑距离

代码随想录算法训练营第五十八天 | 583. 两个字符串的删除操作 & 72. 编辑距离

2023-10-05 07:49:00 167

原创 代码随想录算法训练营第五十七天 | 392.判断子序列 & 115.不同的子序列

代码随想录算法训练营第五十七天 | 392.判断子序列 & 115.不同的子序列

2023-10-04 07:17:45 150

原创 代码随想录算法训练营第五十六天 | 1143. 最长公共子序列 & 1035.不相交的线 & 53. 最大子数组和

最长公共子数组必须连续,所以一旦元素不相等,当前的最长公共长度不能由前面得来,只能为0而最长公共子序列,可以断开,所以不相等时,它的长度可以从前面的状态获取(取最大)

2023-10-03 07:38:09 265

原创 代码随想录算法训练营第五十二天 | 300. 最长递增子序列 & 674. 最长连续递增序列 & 718. 最长重复子数组

dp[i] 取决于 i 之前所有的dp。

2023-10-02 16:28:06 64

原创 代码随想录算法训练营第五十一天 | 309. 买卖股票的最佳时机含冷冻期 & 714. 买卖股票的最佳时机含手续费

多了一个冷冻状态而冷冻状态需要将不持有股票的状态分成两种:非冷冻期,冷冻期。

2023-09-28 12:19:45 54

原创 代码随想录算法训练营第五十天 | 123.买卖股票的最佳时机III & 188. 买卖股票的最佳时机 IV

0: 没有操作, 1: 第一次买入, 2: 第一次卖出, 3: 第二次买入, 4: 第二次卖出。注意遍历状态的时候, 第一个状态要单独拿出来(因为前面没有状态了),或者从第二个状态开始遍历。和 III 一个道理,只不过状态数变成了 2*k 个。不操作的状态可以省略,因为一定为0。滚动数组(当前天直接用前一天)

2023-09-27 08:25:13 263

原创 代码随想录算法训练营第四十九天 | 121. 买卖股票的最佳时机 & ​122. 买卖股票的最佳时机 II​

只能买卖一次。

2023-09-27 07:51:03 56

原创 代码随想录算法训练营第四十八天 | 198.打家劫舍 & 213. 打家劫舍 II & 337. 打家劫舍 III

dp[i] 偷前 i 家的最大收益。

2023-09-25 08:29:11 37

原创 代码随想录算法训练营第四十六天 | 139. 单词拆分 & 背包小结

代码随想录算法训练营第四十六天 | 139. 单词拆分 & 背包小结

2023-09-23 13:25:27 68

原创 代码随想录算法训练营第四十五天 | 70. 爬楼梯 & 322. 零钱兑换 & 279.完全平方数

代码随想录算法训练营第四十五天 | 70. 爬楼梯 & 322. 零钱兑换 & 279.完全平方数

2023-09-22 15:29:23 77

原创 代码随想录算法训练营第四十四天 | 518. 零钱兑换 II & 377. 组合总和 Ⅳ

在容量为 j 的情况下,有 dp [j] 种方法dp[j] 表示:填满 j(包括j)这么大容积的包,有dp[j]种方法确定了一个数(重量)nums[i],那么就还需要 j - nums[i] 才能装满,即有 dp[j - nums[i]] 种方法。先遍历物品不会重复。

2023-09-21 13:01:56 56

原创 代码随想录算法训练营第四十三天 | 1049. 最后一块石头的重量 II & 494. 目标和 & 474.一和零

相当于将石头分成尽量相等的两堆,然后总和减去一堆*2,即为剩下的重量在 0 - i 个石头中装满容量为 sum/2 的背包石头的重量和价值都是stones[i]

2023-09-20 08:48:30 55

原创 代码随想录算法训练营第四十二天 | 背包问题 二维 & 01背包问题 一维 & 416. 分割等和子集

代码随想录算法训练营第四十二天 | 背包问题 二维 & 01背包问题 一维 & 416. 分割等和子集

2023-09-19 09:01:31 107

原创 代码随想录算法训练营第四十一天 | 96. 不同的二叉搜索树

dp[左节点数量] * dp[右节点数量] 之和。左子树 节点数量 从 0 到(n-1)个。右子树 节点数量 从(n-1)到 0 个。dp[n] 是 1-n 分别作为root。

2023-09-18 08:05:58 35

原创 代码随想录算法训练营第三十九天 | 62.不同路径 & 63. 不同路径 & 343. 整数拆分

第一行第一列都是 1当前位置的路径条数,就是前一格和上一格路径条数相加。

2023-09-16 08:57:25 522

原创 代码随想录算法训练营第三十七天 | 509. 斐波那契数 | 70. 爬楼梯 | 746. 使用最小花费爬楼梯

代码随想录算法训练营第三十七天 | 509. 斐波那契数 | 70. 爬楼梯 | 746. 使用最小花费爬楼梯

2023-09-15 07:09:11 55

原创 代码随想录算法训练营第三十七天 | 738. 单调递增的数字 & 968. 监控二叉树

代码随想录算法训练营第三十七天 | 738. 单调递增的数字 & 968. 监控二叉树

2023-09-14 08:04:21 23

原创 代码随想录算法训练营第三十六天 | 435. 无重叠区间 & 763.划分字母区间 & 56. 合并区间

435. 无重叠区间 & 763.划分字母区间 & 56. 合并区间

2023-09-13 08:25:16 76

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

简化为 5元 和 10元两种。

2023-09-12 08:11:21 26

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

按绝对值从大到小排序再从前开始反转负数,这样反转过来的都是大的正数如果反转次数还剩余奇数次,就反转最后一个数(绝对值最小的)偶数次,不用反转。

2023-09-11 09:16:41 17

原创 代码随想录算法训练营第三十一天 | 122. 买卖股票的最佳时机 II & 55. 跳跃游戏 & 45.跳跃游戏 II

122. 买卖股票的最佳时机 II - 力扣(LeetCode) 655. 跳跃游戏 - 力扣(LeetCode)当前在的位置加上当前位置上的数,就是它在这个位置上的最远能到的位置在范围内找到下一个最远能跳的位置45. 跳跃游戏 II - 力扣(LeetCode)找这一跳范围内的下一个最远能跳到的位置

2023-09-09 09:31:47 24

原创 代码随想录算法训练营第三十一天 | 455. 分发饼干 & 376. 摆动序列 & 53. 最大子序和

小饼干优先给小胃口。

2023-09-08 08:26:25 25

原创 代码随想录算法训练营第三十天 | 332.重新安排行程 & 51.N皇后 & 37. 解数独

1. 重新安排行程(跳过)

2023-09-07 08:20:19 79

原创 代码随想录算法训练营第二十九天 | 491. 递增子序列 & 46.全排列 & 47.全排列 II

没有终止条件,因为要判断到最后一个元素,不能中途返回路径上的后一个元素不能小于前一个元素每层的元素也不能重复,用set去重(给定数组是无序的,不可排序)

2023-09-06 08:41:40 20

原创 代码随想录算法训练营第二十八天 | 93. 复原 IP 地址 & 78.子集 & 90.子集II

转换为StringBuilder方便插入点注意插入三个点后还要判断最后一段是否合法判断的条件。

2023-09-05 09:05:03 21

原创 代码随想录算法训练营第二十七天 | 39. 组合总和 & 40.组合总和II & 131. 分割回文串

当前元素和同层元素的前一个元素比较,相同则跳过。根据题意,不能往前找,而是当前元素可重复。重点是找出所有分割方法,可以理解为找组合。在往下一层查找时,要注意。

2023-09-04 08:48:44 24

原创 代码随想录算法训练营第二十五天 | 216. 组合总和 III & 17. 电话号码的字母组合

回溯当路径收集到的元素数量等于k时,返回上一层,并且将符合n的路径保存返回后,要删除路径上最近添加的元素,并在sum中减去这个值,从而去遍历该位置(该层)的下一个元素剪枝:i <= 9-(k-path.size())+1。

2023-09-02 08:03:54 25

原创 代码随想录算法训练营第二十四天 | 77. 组合(包括剪枝)

正式开始回溯算法。

2023-09-01 08:33:39 30

原创 代码随想录算法训练营第二十三天 | 669. 修剪二叉搜索树 & 108.将有序数组转换为二叉搜索树 & 538. 把二叉搜索树转换为累加树

找到要删除的节点,不能直接返回null;还要看当前节点值和上下边界值的比较决定向哪一边继续递归。

2023-08-31 08:50:41 78

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

有序的,可以根据值判断pq在哪一边pq要么在左右子树中一边 搜索其中一边即可要么就是 pq中的一个在根节点,另一个在其中一颗子树,返回根节点即可。

2023-08-30 08:21:31 43

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

pre指针指向前一个节点注意一开始pre是null(可以理解为最左节点的左孩子null)

2023-08-29 09:38:14 38 2

原创 代码随想录算法训练营第二十天 | 654. 最大二叉树 & 617.合并二叉树 & 700.二叉搜索树中的搜索 & 98.验证二叉搜索树

递归终止条件 nums中没有数组 即right - left < 1找到nums中的最大值左子树 [left, max]右子树 [max+1, right]

2023-08-28 09:36:26 45 1

原创 代码随想录算法训练营第十八天 | 513.找树左下角的值 & 112. 路径总和 & 106.从中序与后序遍历序列构造二叉树

而根据左子树的节点数量又可以在postorder中划分出左右子树(的后序排序)这个元素在inorder中,它的前面是左子树,后面是右子树(的中序排序)这样根据子树的中序和后序排序,又可以找到子树的根节点,以及子树的左右子树。postorder的最后一个元素是树的root。根据root在中序排序中找到左右子树的中序排序。这样就能保证最后一行的最左边是最后一个出列的。思路都是一样的,就是上面的感觉有点绕。后序排序的最后一个元素是root。前面学的层序遍历,用队列实现。一层一层的往下减去当前值。

2023-08-26 09:12:00 26

原创 代码随想录算法训练营第十七天 | 110.平衡二叉树 & 257. 二叉树的所有路径 & 404.左叶子之和

两个子节点都为空,该路径到头了,将完整路径添加至res,并返回上一层,寻找另一条路径。当左右子树高度差大于1,返回-1,说明此二叉树不可能是平衡二叉树了。父节点的左孩子不为空,且左孩子为叶子节点,即找到其中一个左叶子。所以判断条件是否满足,应该在父节点的位置进行判断。子节点为空,返回上一层,判断另一个子节点。先获取左右子树的高度,再判断高度差。否则将当前子树的高度返回给父节点。先将当前节点的val拼接好。递归实现 -- 后序遍历。再分别处理它的左右子节点。

2023-08-25 09:51:50 38 1

原创 代码随想录算法训练营第十六天 | 104. 二叉树的最大深度 & 111.二叉树的最小深度 & 222.完全二叉树的节点个数

深度指的是 根节点 -> 叶子节点 的距离高度指的是 叶子节点 -> 根节点 的距离。

2023-08-24 09:53:53 51 1

原创 代码随想录算法训练营第十五天 | 二叉树层序遍历 & 翻转二叉树 & 对称二叉树

迭代队列实现,size记录每层的元素个数递归deep用来确保一层只加一个list。

2023-08-23 11:25:41 55

空空如也

空空如也

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

TA关注的人

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