自定义博客皮肤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)
  • 收藏
  • 关注

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

动态规划,很多题已经可以用记忆化搜索做出来了,之后再多熟悉DP的迭代写法。数组、链表、哈希表部分基本可以自己做出来了,链表结构的构造还不熟练。栈和队列部分,用栈实现队列、用队列实现栈,单调栈、优先级队列等。字符串的KMP部分需要经常回顾,结合字符串哈希。二叉树,结构的构造、部分迭代算法还不熟练。寒假自己刷过一遍,算是二刷了。回溯的去重还需要多巩固。

2023-05-17 12:10:02 239

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

【代码】代码随想录算法训练营第59天 | 503. 下一个更大元素 II、42. 接雨水。

2023-05-12 20:32:00 294

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

【代码】代码随想录算法训练营第58天 | 739. 每日温度、496. 下一个更大元素 I。

2023-05-11 19:56:24 323

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

【代码】代码随想录算法训练营第57天 | 647. 回文子串、516. 最长回文子序列。

2023-05-10 19:01:25 345

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

【代码】代码随想录算法训练营第56天 | 583. 两个字符串的删除操作、

2023-05-09 23:37:18 211

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

【代码】代码随想录算法训练营第55天 | 392. 判断子序列、115. 不同的子序列。

2023-05-09 15:09:41 268

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

定义dp[i][j]表示长度分别为i j 的字符串的最长公共子序列。dp[i] 表示以nums[i]结尾的数组的最大和。

2023-05-06 21:04:10 346

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

【代码】代码随想录算法训练营第52天 | 300. 最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组。

2023-05-05 20:18:04 357

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

【代码】代码随想录算法训练营第51天 | 309. 最佳买卖股票时机含冷冻期、714. 买卖股票的最佳时机含手续费。

2023-05-04 20:03:08 368

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

【代码】代码随想录算法训练营第50天 | 123. 买卖股票的最佳时机 III、188. 买卖股票的最佳时机 IV。

2023-05-03 19:33:32 422

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

【代码】代码随想录算法训练营第49天 | 121. 买卖股票的最佳时机、122. 买卖股票的最佳时机 II。

2023-05-02 21:25:24 469

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

选nums[0],nums[1]和nums[-1]不能选,那么同上题nums[2: -1]不选nums[0],同上题nums[1:]

2023-05-01 11:16:02 431

原创 代码随想录算法训练营第46天 | 139. 单词拆分

【代码】代码随想录算法训练营第46天 | 139. 单词拆分。

2023-04-30 22:08:41 376

原创 代码随想录算法训练营第45天 | 322. 零钱兑换、279. 完全平方数

【代码】代码随想录算法训练营第45天 | 322. 零钱兑换、279. 完全平方数。

2023-04-30 22:03:00 485

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

【代码】代码随想录算法训练营第44天 | 518. 零钱兑换 II、377. 组合总和 Ⅳ。

2023-04-29 19:39:40 483

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

【代码】代码随想录算法训练营第43天 | 1049. 最后一块石头的重量 II、494. 目标和、474. 一和零。

2023-04-29 14:16:23 547

原创 代码随想录算法训练营第42天 | 416. 分割等和子集

【代码】代码随想录算法训练营第42天 | 416. 分割等和子集。

2023-04-25 10:10:39 766

原创 代码随想录算法训练营第41天 | 343. 整数拆分、96. 不同的二叉搜索树

答案为 i * (n - i) 和 i * dfs(n - i)的最大值。枚举i从 2 到 n / 2 + 1。

2023-04-24 09:07:54 636

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

【代码】代码随想录算法训练营第39天 | 62. 不同路径、63. 不同路径 II。

2023-04-22 22:12:26 733

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

【代码】代码随想录算法训练营第38天 | 509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯。

2023-04-21 11:10:14 814

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

从右往左遍历,若左边数字大于当前数字,则应将当前数字替换成9,左边数字减1。10 时会修改成 09,此时9大于了右边的0。所以应当记录最后一次修改的位置,将该位置之后的数字全部改为9。

2023-04-20 14:08:17 915

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

将区间按左端点排序,若当前区间与前面区间有重叠,则合并,将右端设置为较大值。对右边界排序,当前区间若大于之前的区间的右边界,则又多一个不重叠区间。记录所有无重叠区间,把总数减去不重叠。

2023-04-19 14:33:38 919

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

模拟,支付20元时优先找零10元和5元,再找零3个5元。贪心,按左端点排序,从左到右遍历,取右端点最小值。按照身高降序,按索引升序。

2023-04-18 11:19:09 920

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

再从右到左边遍历,如果rating比右边的大,则将自己的糖果改成右边糖果+1,或者不变。从左到右遍历,如果rating比左边的大,则将自己的糖果改成左边糖果+1。

2023-04-17 15:54:05 1038

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

在当前可以跳到的范围内搜索,找出跳到该点后能再跳到的最远距离。贪心思路,考虑每个点能跳到的最远距离。

2023-04-16 00:16:00 1035

原创 代码随想录算法训练营第31天 | 455. 分发饼干、376. 摆动序列、53. 最大子数组和

贪心解法,每次差值和上一次的差值符号相反时ans++贪心思路,先用小饼干满足小胃口的人。

2023-04-14 21:52:43 1176

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

随着递归的出栈,点不断推入 res ,最后就得到一个和从起点出发的欧拉路径相反的序列。题意已知图中存在欧拉路径,你要找出一个欧拉路径,可以用 hierholzer 算法。如果在一张图中,从一个点出发可以走完所有的边,则这个遍历走过的路径就叫欧拉路径。DFS 搜索,访问邻接的点,并且将走过的边(邻接关系)删除。如果走到的当前点,已经没有相邻边了,则将当前点推入 res。回溯过程,判断当前点是否能放置Q,如果可以则递归进入下一行。任选一个点为起点,遍历它所有邻接的边(设置不同的分支)。

2023-04-14 19:35:01 90

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

例如 [1,1',2],当path = [2]时,选择第0个元素加入后path = [2, 1],然后递归再加入第1个元素 path = [2, 1, 1'],将path加入答案,然后返回。返回到path = [2],选择第1个元素1',此时第0个元素尚未加入path,即hash[0] = 0,若将第1个元素1'加入则path = [2,1'],之后会递归到path = [2,1',1],与前面的path = [2, 1, 1']重复了。

2023-04-12 21:52:30 1374

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

递归需要一个参数来记录已经加入多少个".",当已有3个时,直接判断剩余是否满足,满足则加入答案。先写判断字符串是否满足要求。

2023-04-11 23:02:46 1495 1

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

注意 i > startIndex,不然会跳过元素重复的组合[1,1,6],若使用candidates[i]==candidates[i + 1]也是同理。直接用target当做求和,每加入一个数candidates[i]后,就减小。直接用candidates[i] == candidates[i-1]去重。若分割的子串构成回文串,则可以把答案加入到路径中,若不是则直接i+1。每次循环以index开始,递归时传入i,这样可以重复选择。若分割到最后位置,则可以将path加入答案。双指针法判断是否为回文子串。

2023-04-10 17:58:05 37

原创 代码随想录算法训练营第25天 | 216. 组合总和 III、17. 电话号码的字母组合、1125. 最小的必要团队

【代码】代码随想录算法训练营第25天 | 216. 组合总和 III、17. 电话号码的字母组合。

2023-04-08 17:00:26 50

原创 代码随想录算法训练营第24天 | 77. 组合、1040. 移动石子直到连续 II

最大移动次数:stones[0]~stones[n-2]之间的空位,或者stones[1]~stones[n-1]之间的空位。在一个大小为n的窗口内,计算最大石子数,n-cnt即为最小的移动次数。

2023-04-07 15:40:07 1403

原创 代码随想录算法训练营第23天 | 669. 修剪二叉搜索树、108. 将有序数组转换为二叉搜索树、538. 把二叉搜索树转换为累加树、每日一题 1017. 负二进制转换

维护一个全局变量sum,记录遍历过的节点值和,并修改遍历到的节点值。将有序数组的中点当做数的根节点,不断递归左右子区间。当遇到比下边界小的值,应该递归修改右子树。当遇到比上边界大的值,应该递归修改左子树。这样构建出来的左右子树一定是平衡的。采用右中左的遍历顺序。

2023-04-06 12:11:11 1600

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

二叉搜索树的公共祖先更加简单,都小于当前节点则在左子树,都大于当前节点则在右子树。

2023-04-05 13:28:56 1730

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

利用二叉搜索树的特性。

2023-04-04 11:11:15 1860 1

原创 代码随想录算法训练营第二十天 | 每日一题 1053. 交换一次的先前排列、654. 最大二叉树、617. 合并二叉树、700. 二叉搜索树中的搜索、98. 验证二叉搜索树

贪心,被交换的元素,左边应该大于右边,且左边的索引应该尽可能大。

2023-04-03 14:50:31 1677

原创 代码随想录算法训练营第十八天 | 513. 找树左下角的值、112. 路径总和、113. 路径总和 II

递归,维护两个全局变量,前序遍历,如果当前深度大于最大深度,则改变ans。迭代法,层序遍历,记录每层第一个值。

2023-04-02 15:23:37 2122

原创 代码随想录算法训练营第十七天 | 每日一题 2367. 算术三元组的数目、110. 平衡二叉树、257. 二叉树的所有路径、404. 左叶子之和

当不平衡时,直接返回-1,减少递归次数。哈希表记录每个元素 或者 使用三指针。

2023-03-31 15:07:23 1937 1

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

左为空,则返回右 + 1;右为空,则返回左 + 1;都不空才返回 min(left, right) + 1。利用完全二叉树的特性。

2023-03-30 16:12:43 1808

原创 代码随想录算法训练营第十五天 | 102. 二叉树的层序遍历、226. 翻转二叉树、101. 对称二叉树、每日一题 1641. 统计字典序元音字符串的数目

【代码】代码随想录算法训练营第十五天 | 102. 二叉树的层序遍历、

2023-03-29 14:52:04 1903

空空如也

空空如也

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

TA关注的人

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