代码随想录-36期
文章平均质量分 66
第36期代码随想录算法,一刷
yht724
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Day63 单调栈part02
LC42接雨水(未掌握)暴力解法:按列求雨水体积宽度一定是1高度,取决于,该列 左侧最高的柱子和右侧最高的柱子中最矮的那个柱子的高度。代码双指针优化法:每到一个柱子都向两边遍历一遍,这其实是有重复计算的。我们把每一个位置的左边最高高度记录在一个数组上(maxLeft),右边最高高度记录在一个数组上(maxRight),这样就避免了重复计算代码单调栈需要寻找一个元素,右边最大元素以及左边最大元素,来计算雨水面积单调栈从栈头到栈底的顺序是从小到大的一旦发现添加原创 2024-07-11 23:34:55 · 871 阅读 · 0 评论 -
Day62 单调栈part01
LC739每日温度(未掌握)暴力解法:两层for循环,时间复杂度O(n^2),会超时未掌握原因分析:只想到了从栈顶到栈底是递减的情况,忽略了从栈顶到栈底是递增的情况因为需要找到一个元素右边第一个更大元素,只有递增的时候,栈里要加入一个元素i的时候,才知道栈顶元素在数组中右面第一个比栈顶元素大的元素是i下标i和栈顶元素下标是我们已知的信息,我们需要的也是下标,只有充分利用我们已知的信息才能减轻负担代码LC496下一个更大元素I(未掌握)本质是跟LC739一样的,但是因为涉及两个数原创 2024-07-09 23:13:57 · 486 阅读 · 0 评论 -
Day60 动态规划part13
动态规划part13原创 2024-07-08 23:48:59 · 378 阅读 · 0 评论 -
优化后Day53 动态规划part11
1.dp数组的含义:dp[i][j]表示以下标i结尾的text1子序列和以下标j结尾的text2子序列的最长公共子序列2. 初始化:跟LC718一样,i结尾的需要初始化,i-1结尾不需要初始化3. 递推公式。原创 2024-07-07 18:15:11 · 272 阅读 · 0 评论 -
优化:Day52 动态规划part10
LC300最长递增子序列dp数组中dp[i]的含义是:以nums[i]结尾的子序列中最长递增子序列的长度为dp[i]最长连续递增子序列非连续最长递增子序列如果是连续的,只需要nums[i]>nums[i-1]就将dp值+1,但是如果是非连续的,nums[i]之前的所有子序列都可能跟nums[i]组成递增子序列,因此需要多加一层循环LC674最长连续递增子序列LC718最长重复子数组(未掌握)未掌握分析:想复杂了dp数组的含义:dp[i][j]表示nums1中以nums1[i原创 2024-06-17 23:44:47 · 306 阅读 · 0 评论 -
Day53 动态规划part12
LC309买卖股票的最佳时机含冷冻期与LC122类似,都是可无限次购买股票,只不过引入了冷冻期的概念dp[i][0] 第i天持有股票收益;dp[i][1] 第i天不持有股票收益;情况一:第i天是冷静期,不能以dp[i-1][1]购买股票,所以以dp[i - 2][1]买股票,没问题情况二:第i天不是冷静期,理论上应该以dp[i-1][1]购买股票,但是第i天不是冷静期说明,第i-1天没有卖出股票,则dp[i-1][1]=dp[i-2][1],所以可以用dp[i-2][1]买股票,没问题代码原创 2024-06-08 19:22:40 · 448 阅读 · 0 评论 -
Day51 动态规划part10+Day52 动态规划part11
k+1种,代表2。原创 2024-06-08 17:07:36 · 1050 阅读 · 0 评论 -
Day50 动态规划part09
Day50 动态规划part09原创 2024-06-08 14:15:02 · 314 阅读 · 0 评论 -
Day49 动态规划part08
LC139单词拆分(未掌握)未掌握分析:将字符串s中的各个字符看成是背包,思考成了多重背包问题单词就是物品,字符串s就是背包,单词能否组成字符串s,就是问物品能不能把背包装满。拆分时可以重复使用字典中的单词,说明就是一个完全背包!只不过与一般的完全背包不同的是需要考虑物品的顺序问题,物品并不能随意摆放在背包中dp数组的含义:dp[i] : 字符串长度为i的话,dp[i]为true,表示可以拆分为一个或多个在字典中出现的单词确定递推公式:如果确定dp[j] 是true,且 [j, i] 这个区间的子原创 2024-06-07 23:02:59 · 394 阅读 · 0 评论 -
Day48 动态规划part07
Day48 动态规划part07原创 2024-06-06 23:15:34 · 360 阅读 · 0 评论 -
Day46 动态规划part06
完全背包问题完全背包和01背包问题唯一不同的地方就是,每种物品有无限件。先遍历物品还是先遍历背包以及遍历顺序根据递推公式可知:每一个dp需要根据上方和左方的数据推出,只要保证数据左上方数据是递推出来的这种两个for循环的顺序就是可以的01背包:01背包二维dp数组:两个for遍历的先后循序是可以颠倒行是背包容量,列是物品,从小到大遍历物品和背包先物品再背包:一行一行进行遍历,左上元素是递推出来的(有一行是初始化)先背包再物品:一列一列进行遍历,左上元素是递推出来的01背包一维d原创 2024-06-02 14:06:12 · 330 阅读 · 0 评论 -
Day45 动态规划part05
LC1049最后一块石头重量II(未掌握)未掌握分析:其实本题跟LC416分割等和子集类似,本质上题目的要求是尽量让石头分成重量相同的两堆,相撞之后剩下的石头最小,也就是01背包问题weight和value都是stones数组,题目可以看成是target=sum/2,即求背包容量是target所装石头的value是多少。target = sum / 2 因为是向下取整,所以sum - dp[target] 一定是大于等于dp[target]的。代码LC494目标和(未掌握)未能够将题意转原创 2024-06-01 22:15:02 · 529 阅读 · 0 评论 -
Day44 动态规划part04
o2n。原创 2024-06-01 21:02:09 · 1214 阅读 · 0 评论 -
动态规划part03 Day43
dp[i-j],j。原创 2024-05-29 22:51:11 · 1003 阅读 · 0 评论 -
动态规划part02 Day42
LC62不同路径LC63不同路径II(超时10min)超时原因分析:思路想错了,即便是正确思路初始化也有点问题,应该将不必要的判断逻辑引入初始化的过程中初始化:从左上角到[i][0]和[0][j]都只有一条路径dp[i][0]=1和dp[0][j]=1引入故障,因此还需要obstacleGrid[i][0]==0和obstacleGrid[0][j]==0循环过程中,如果存在左边或者上边有故障,那么他们的dp值一定是0的,因为判断obstacles[i][j]==1直接continue原创 2024-05-28 18:00:00 · 342 阅读 · 0 评论 -
动态规划part01 Day41
动态规划算法解题步骤确定dp数组(dp table)以及下标的含义确定递推公式dp数组如何初始化确定遍历顺序举例推导dp数组LC509斐波那契数LC70爬楼梯LC746使用最小花费爬楼梯dp[]含义:爬到第i层楼梯的最小花费原创 2024-05-28 16:57:18 · 314 阅读 · 0 评论 -
Day39贪心算法part06
贪心算法part06原创 2024-05-25 23:27:29 · 360 阅读 · 0 评论 -
Day38 贪心算法part05
贪心算法part05原创 2024-05-24 22:07:53 · 613 阅读 · 0 评论 -
Day37 贪心算法part04
贪心算法part04原创 2024-05-23 22:22:30 · 635 阅读 · 0 评论 -
Day36 贪心算法Part03
Day36 贪心算法Part03原创 2024-05-22 22:37:06 · 639 阅读 · 0 评论 -
Day35 贪心算法part02
贪心算法part02。原创 2024-05-21 22:39:56 · 388 阅读 · 0 评论 -
Day34 贪心算法part01
贪心算法part01。原创 2024-05-20 20:30:10 · 482 阅读 · 0 评论 -
Day32 回溯算法part06
回溯算法part06。原创 2024-05-18 22:32:21 · 418 阅读 · 0 评论 -
Day31 回溯算法part05
回溯算法part05。原创 2024-05-17 22:27:23 · 480 阅读 · 0 评论 -
Day30 回溯算法part04
回溯算法part04。原创 2024-05-16 22:11:37 · 387 阅读 · 0 评论 -
Day29 回溯算法part03
回溯算法part03。原创 2024-05-15 20:59:35 · 386 阅读 · 0 评论 -
Day28 回溯算法part02
回溯算法part02。原创 2024-05-14 20:54:35 · 364 阅读 · 0 评论 -
Day27 回溯算法part01
回溯算法part01。原创 2024-05-13 20:31:48 · 355 阅读 · 0 评论 -
Day25 二叉树part09
二叉树part09。原创 2024-05-11 17:30:11 · 330 阅读 · 0 评论 -
Day24 二叉树part08
二叉树part08。原创 2024-05-10 16:07:16 · 443 阅读 · 0 评论 -
Day23 二叉树part07
二叉树part07。原创 2024-05-09 20:13:41 · 521 阅读 · 0 评论 -
Day22 二叉树part06
二叉树part06。原创 2024-05-08 22:30:31 · 520 阅读 · 0 评论 -
Day21 二叉树part05
二叉树part05。原创 2024-05-07 21:06:59 · 553 阅读 · 1 评论 -
Day20 二叉树part04
二叉树part04。原创 2024-05-06 22:10:05 · 529 阅读 · 1 评论 -
Day19 二叉树part03
二叉树part03。原创 2024-05-05 21:10:59 · 290 阅读 · 0 评论 -
Day18 二叉树 part02
第十八天 二叉树 part02原创 2024-05-04 23:45:50 · 343 阅读 · 1 评论 -
Day14 二叉树part01
二叉树part01。原创 2024-04-30 22:48:47 · 400 阅读 · 1 评论 -
Day13 栈和队列part03
第十三天 栈和队列part03原创 2024-04-29 22:13:52 · 199 阅读 · 0 评论 -
Day11 栈与队列part02
第十一天 栈与队列part02。原创 2024-04-27 14:48:34 · 425 阅读 · 1 评论 -
Day10 栈与队列 part01
第十天 栈与队列 part01。原创 2024-04-26 22:36:52 · 271 阅读 · 1 评论
分享