自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

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

现在就是后悔后悔为什么没有早一点报名!!!如果在年初就报名了,跟着刷完了,现在也不至于到秋招了还着急忙慌的,所以真心建议和我一样没什么自控力的人早点报名!!说一下训练营的优点吧每天的有固定的任务,且合理分配,题量不大,能够督促着自己一点点完成群里有大家一起刷题,有氛围,还有答疑解惑但是不得不说,不适合想要快速刷完的人,因为训练营一天只会安排三道题左右,整体完成周期比较长后面就会继续二刷啦~还有联系ACM格式代码

2023-08-07 10:42:15 286

原创 代码随想录训练营Day60最后一天!

【代码】代码随想录训练营Day60最后一天!

2023-08-06 15:53:34 225

原创 代码随想录训练营Day59|单调栈Part02|

503.下一个更大元素②循环数组这题只要弄清楚循环的规律以及表达方式就会比较简单走两边数组即可42.接雨水(常考)横向求解定义一个单调递增的栈,可以从栈中找到左边比当前元素大和右边比当前元素大的元素雨水面积 = 宽 x 高这里面定义很多,一会是下标,一会是数值的,要注意

2023-08-04 21:19:37 225

原创 代码随想录训练营Day59单调栈Part01|739. 每日温度|496.下一个更大元素①

对于两个没有重复元素的数组(一个为另一个子集),可以用map来做映射。可以在上一题的基础上做。

2023-08-03 22:47:01 404

原创 代码随想录训练营Day57动态规划Part17|647.回文子串|516.最长回文子序

Part17647.回文子串虽然花了很多时间,但是自己写出来了定义dp[i][j]为布尔类型,记录起始位置为i,终止位置为j的字符串是否为回文子串起始、终止位置字符串不同则FALSE;若相同,有三种情况:1- i==j,true;2- i-j==1,true;3- 其他时候靠dp[i+1][j-1]判断要注意遍历顺序和dp数组中i、j的定义516.最长回文子序主干和上题不一样,上一题是子串,要连续的;本题是子序,可以不连续,只要相对顺序不变就行但是递推思路很相似,一样画二维dp数组推导

2023-08-02 14:36:07 305

原创 代码随想录训练营Day56动态规划part16|583. 两个字符串的删除操作|72. 编辑距离|编辑距离总结篇

判断子序列:只需要考虑其中一个字符串的删除情况不同的子序列:也只需要考虑其中一个字符串的删除情况,但是递推公式要注意,递推公式要情况数值累加***(不太清楚)***两个字符串的删除操作:两个字符串都可以进行删除情况,分别删除和同时删除编辑距离:两个字符串都可以进行删除、增加、替换操作,其中删除和增加在递推公式表达上一样,上一题的两个字符串同时删除被本题的字符串替换替代。

2023-08-01 10:25:21 241

原创 代码随想录训练营Day55动态规划part15|392.判断子序列|115.不同的子序列

【代码】代码随想录训练营Day55动态规划part15|392.判断子序列|115.不同的子序列。

2023-07-31 13:47:41 200

原创 代码随想录Day53动态规划part14|1143.最长公共子序列|1035.不相交的线|53. 最大子序和 动态规划

1143.最长公共子序列也不考虑顺序,元素之间可以不连续和718很相似,只不过这题要累加不连续的情况1035.不相交的线套上一题的程序可以通过,但是实际没有特别理解53. 最大子序和 动态规划之前用贪心做的,一旦sum<0,就舍弃前面所有的相加,重新开始动态规划不太会每一个位置都存在两种状态,1、延续上一个加;2、从当前开始加

2023-07-30 22:28:09 215

原创 代码随想录训练营Day52动态规划part13|300.最长递增子序列| 674. 最长连续递增序列|718. 最长重复子数组

300.最长递增子序列dp[i]表示前面有几个比自己小的数(而不是最大值,因为这里的递推公式和i相关)细节很多,要和前面每一个i比较,,取最大值,最后的输出也未必就是最后一位,也要找最大值674. 最长连续递增序列和上一题相似,但是更加简单,只需要将当前nums[i]与nums[i-1]相比即可718. 最长重复子数组重点在于元素之间可以不连续,没什么思路给了两个数组,要求比较,定义一个二维数组进行比较递推公式、初始化、区间的定义都很巧妙要二刷回味

2023-07-30 21:34:54 166

原创 代码随想录训练营Day51动态规划part12|309.最佳买卖股票时机含冷冻期|714.买卖股票的最佳时机含手续费|总结

重要的是二维dp数组,有一个维度用来描述状态。

2023-07-27 23:16:28 163

原创 动态规划part11|123.买卖股票的最佳时机III|188.买卖股票的最佳时机IV

123.买卖股票的最佳时期三二维dp数组,想到了要设置四个状态关键失误的点在于,第二次买入如何初始化:-prices[i],当做第零天买入又卖出,再第二次买入;如果直接初始化为0,后面计算的时候,计算第二天卖出收益会增大188.买卖股票的最佳时期四上一题的变形,把上一题的两次换为k次即可,但是要注意代码细节

2023-07-26 16:54:21 169

原创 代码随想录训练营Day49动态规划part10|121. 买卖股票的最佳时机|122.买卖股票的最佳时机II

买卖股票的最佳时期贪心很好写动规比较复杂,要设置dp二维数组,i表示日期,j表示买入股票/卖出股票要习惯二维的dp数组,j维度表示物品状态,且递推公式要注意买卖股票的最佳时期二贪心和上面一样,用二维dp数组

2023-07-26 16:52:16 161

原创 代码随想录训练营Day48|动态规划part09|198.打家劫舍|213.打家劫舍II|337.打家劫舍III

【代码】代码随想录训练营Day48|动态规划part09|198.打家劫舍|213.打家劫舍II|337.打家劫舍III。

2023-07-24 17:15:37 204

原创 代码随想录训练营Day46动态规划part08|139.单词拆分|多重背包| 背包问题总结篇

遍历顺序01背包(一维数组表示、二维数组表示)和完全背包。

2023-07-22 21:17:55 159

原创 代码随想录训练营Day45动态规划part07|70. 爬楼梯 (进阶)| 322. 零钱兑换|279.完全平方数

【代码】代码随想录训练营Day45动态规划part07|70. 爬楼梯 (进阶)| 322. 零钱兑换|279.完全平方数。

2023-07-21 20:47:32 195

原创 代码随想录训练营Day44动态规划06|完全背包|518. 零钱兑换 II| 377. 组合总和 Ⅳ

【代码】代码随想录训练营Day44动态规划06|完全背包|518. 零钱兑换 II| 377. 组合总和 Ⅳ。

2023-07-21 11:57:44 149

原创 代码随想录训练营Day43动态规划Part05|1049. 最后一块石头的重量 II|494. 目标和|474.一和零

没有思路,不知道如何用背包问题解决Carl提示和416很像,也是将石头分为两组,只是416题要求两组价值完全一样,本题则是希望价值越大越好,越大越接近总值的一半,就会令两组的差距越小本题用的滚动一维dp数组,有很多要注意的细节:// 初始化//此时只初始化数组的大小和存入0,其余像二维数组的那种初始化可以在遍历中实现i++) { // 遍历物品,从i=0开始,实现二维的单独初始化j--) { // 遍历背包容量。

2023-07-21 10:01:53 142

原创 代码随想录训练营Day42动态规划Part04|01背包问题|416. 分割等和子集

0-1背包问题基础理论0-1背包:n种物品,每种物品仅有一个,每个物品都有自己的重量w和价值v,有个容量限重为x的背包,问最多能装价值为多少的物品完全背包:n中物品,每种物品都有无限个题外话:暴力解法可以用回溯,时间复杂度2^n动规五部曲:dp数组及其下标含义:dp[i,j]表示从下标为0~i的物品里任意取,放进容量为j的背包中,价值总和最大的价值量递推公式:dp[i, j]可以从两个方向推导出来:①不放物品i时,没有更新背包中物品,价值与之前相同dp[i, j] = dp[i-1, j];

2023-07-20 16:48:15 127

原创 代码随想录训练营Day41动态规划part03|343. 整数拆分|96.不同的二叉搜索树

【代码】代码随想录训练营Day41动态规划part03|343. 整数拆分|96.不同的二叉搜索树。

2023-07-20 15:48:46 176

原创 代码随想录训练营Day39动态规划02|62.不同路径|63.不同路径②

62.不同路径自己画图推理公式就可以写出来dp数组含义:从【0,0】出发到【i,j】有多少条不同的路径递推公式:dp[i,j] = dp[i-1,j] + dp[i,j-1]初始化,i == 0和j == 0时dp为163.不同路径2和上一题很像,但是要注意路障为0的情况初始化,不能像上一题一样直接令i == 0和 j == 0的部分dp都为1,因为若前一个为0,下一个也为0,初始化的时候要多加小心有很多细节要注意

2023-07-15 15:54:37 150

原创 代码随想录训练营Day38动态规划Part01|理论基础|509. 斐波那契数|70. 爬楼梯|746. 使用最小花费爬楼梯

动态规划理论基础什么是动态规划:Dynamic Programming,简称DP,如果某一个有很多重叠子问题,使用动态规划是最有效的,所以动态规划中每一个状态一定是由上一个状态推导出来的(这一点就区别于贪心,贪心没有状态推导,直接从局部选择最优)动态规划的解题步骤:确定dp数组(dp table)以及下标的含义确定递推公式dp数组如何初始化确定遍历顺序举例推导dp数组动态规划如何debug:做动规题目前,要把状态转移到dp数组上模拟一遍,再写出代码,将dp数组打印出来比较是哪一步出了

2023-07-14 11:20:14 130

原创 代码随想录训练营Day37贪心算法Part6|738.单调递增的数字|968.监控二叉树|总结

简单题找数列中局部峰值的数,局部最大数、局部最小数买股票题,找每日最优两个维度权衡题,两个维度一次遍历满足跳跃游戏和重叠区间问题。

2023-07-13 17:24:03 140

原创 代码随想录训练营Day36贪心算法Part05|435. 无重叠区间|763.划分字母区间|56. 合并区间

435. 无重叠区间和昨天最少射箭数量的非常相似注意在定义cmp函数的时候,参数要写const和&,不然运行会超时763.划分字母区间思路:记录每个字母出现的最后的下标(只要出现一次更新一次就行,不用为了某个字母特意遍历一遍),然后比较本段的下标内的字母有没有更新下标56. 合并区间感觉是435.无重叠区间的拓展,435是找到不重叠的区间,本题是将重叠区间合并,要注意按照435的写法,最后一个区间要手动加入Carl在本题是,先存入区间,接着判断下一区间与本区间是否重叠,不重

2023-07-12 15:50:27 191

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

【代码】代码随想录训练营Day35贪心算法04|860.柠檬水找零|406.根据身高重建队列|452. 用最少数量的箭引爆气球。

2023-07-12 11:31:36 67

原创 代码随想录Day34贪心算法Part03|1005.k次取反后最大化的数组和|134.加油站|135.分发糖果

【代码】代码随想录Day34贪心算法Part03|1005.k次取反后最大化的数组和|134.加油站|135.分发糖果。

2023-07-10 10:52:27 158

原创 代码随想录Day30回溯算法Part06|332.重新安排行程|51. N皇后|37. 解数独|总结

332.重新安排行程逻辑理清楚了,但是自己写的运行时间超出限制了因为出发点必须是JFK,因此可以在path中首先push入JFKcarl没有直接对tickets对应的起飞、到达地点操作,而是做了一个映射,分别记录每个起飞地点,可以对应几个到达地点,分别可以到几次,然后对这些数据、映射关系进行操作。51. N皇后首先来看一下皇后们的约束条件:不能同行、不能同列、不能同斜线注意把判断该点是否能作为皇后单独写个函数注意先设置一个只有’.'的空棋盘传入,在回溯函数中修改棋盘中的皇后,而不是在回溯

2023-07-09 18:01:12 92

原创 代码随想录Day32贪心算法Part02|122.买卖股票的最佳时机II|55. 跳跃游戏|45.跳跃游戏II

122.买卖股票的最佳时机②和摆动序列一样,找峰值Carl:利润可分解,贪心:只收集每天的正利润(更简单)55.跳跃游戏没有思路Carl思路:局部最优,目前可覆盖到的范围;同时,遍历的数据也是该范围(每一轮都会更新)代码很简单,主要是思路,不要考虑具体跳到第几个只要考虑能不能覆盖到最后一位就行45.跳跃游戏②比上一题多了一个使用最少跳跃次数的条件用回溯写的,但是一直显示时间超出限制看了Carl的视频后,理解了Carl的思路,但是实现和Carl不同,感觉Carl实现的代码很简洁,

2023-07-08 22:51:45 139

原创 代码随想录Day31贪心算法Part01|理论基础|455.分发饼干|376. 摆动序列|53. 最大子序和

贪心算法的理论基础本质:选择每一阶段的局部最优,从而达到全局最优应用:没有固定应用场景和套路,手动模拟或反推可以用贪心算法(局部最优推整体最优)解题步骤:1、将问题分为若干个子问题​ 2、找出适合的贪心策略​ 3、求解每一个子问题的最优解​ 4、将局部最优解堆叠成全局最优解​ (步骤只是理论,实操理清局部最优和全局最优)455.分发饼干第一道比较简单,让我纠结的点在于,是从小胃口的孩子开始满足,还是从大胃口的孩子开始满足我觉得没有区别,因此采用

2023-07-08 20:37:23 99

原创 代码随想录训练营Day29回溯算法Part05|491.递增子序列|46.全排列|47.全排列 II

【代码】代码随想录训练营Day29回溯算法Part05|491.递增子序列|46.全排列|47.全排列 II。

2023-07-08 15:55:17 194

原创 代码随想录训练营Day28回溯算法Part04|93.复原IP地址|78.子集|90.子集II

【代码】代码随想录训练营Day28回溯算法Part04|93.复原IP地址|78.子集|90.子集II。

2023-07-04 12:59:05 94

原创 代码随想录训练营Day27回溯算法Part03|39. 组合总和|40.组合总和II|131.分割回文串

【代码】代码随想录训练营Day27回溯算法Part03|39. 组合总和|40.组合总和II|131.分割回文串。

2023-07-03 13:15:45 179 1

原创 代码随想录训练营Day25回溯算法Part02|216.组合总和III|17.电话号码的字母组合

【代码】代码随想录训练营Day25回溯算法Part02|216.组合总和III|17.电话号码的字母组合。

2023-07-01 15:30:56 181

原创 代码随想录训练营Day24回溯算法Part01|理论基础|77.组合问题

【代码】代码随想录训练营Day24回溯算法Part01|理论基础|77.组合问题。

2023-06-30 16:43:53 100

原创 代码随想录训练营Day23二叉树Part09|669. 修剪二叉搜索树|08.将有序数组转换为二叉搜索树|538.把二叉搜索树转换为累加树|总结篇

遍历顺序:二叉树构造-中左右;二叉搜索树属性-中左右;普通二叉树属性-左右中+回溯。

2023-06-29 15:01:15 154 1

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

【代码】代码随想录训练营Day22二叉树Part08|235. 二叉搜索树的最近公共祖先|701.二叉搜索树中的插入操作|450.删除二叉搜索树中的节点。

2023-06-28 15:13:29 121 1

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

pre。

2023-06-27 14:24:50 113 1

原创 代码随想录训练营Day20二叉树Part06|654.最大二叉树|617.合并二叉树|700.二叉搜索树中的搜索|98.验证二叉搜索树

654.最大二叉树和昨天写的105、106有异曲同工之妙617.合并二叉树与上面相似本想借助node1为载体,仅在node1上修改,递归不需要返回值,发现有细节的错误,还是要返回节点700.二叉搜索树中的搜索二叉搜索树(有序树),左子树小于中间结点,右子树大于中间结点利用二叉搜索树的特性98.验证二叉搜索树坑1:左子树的所有值都要比右子树小(包括做子树中的右节点,也要比右子树小)坑2:边界条件很烦,INT_MIN和INT_MAX(Carl列的坑我全踩了)以上用的是前序遍历

2023-06-26 18:53:54 166 1

原创 代码随想录训练营Day18二叉树part05|513.找树左下角的值|112. 路径总和 113.路径总和ii|106.从中序与后序遍历序列构造二叉树 105.从前序与中序遍历序列构造二叉树

【代码】代码随想录训练营Day18二叉树part05|513.找树左下角的值|112. 路径总和 113.路径总和ii|106.从中序与后序遍历序列构造二叉树 105.从前序与中序遍历序列构造二叉树。

2023-06-25 22:19:36 89

原创 代码随想录训练营Day17Part04|110.平衡二叉树|257. 二叉树的所有路径|404.左叶子之和

【代码】代码随想录训练营Day17Part04|110.平衡二叉树|257. 二叉树的所有路径|404.左叶子之和。

2023-06-23 21:10:15 261 1

原创 代码随想录训练营Day16二叉树Part03|104.二叉树的最大深度|111.二叉树的最小深度|222.完全二叉树的节点个数

104.二叉树的最大深度昨天用层序遍历写过(迭代法)看Carl视频收获:深度:任意节点到根节点的距离,用前序遍历,从上往下计数;高度:任意节点到叶子节点的距离,用后序遍历,从下往上计数;因此最大深度 = 根节点的高度用递归法解决,用后序遍历更简单(前序遍历涉及回溯,还没看)559.n叉树的最大深度:相似解法111.二叉树的最小深度昨天用层序遍历写过(迭代法)看Carl视频收获:最小深度:根节点到最近的叶子节点的距离;也是用后序遍历,求最小高度要注意的是,当根节点的左右

2023-06-22 23:10:41 171 1

空空如也

空空如也

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

TA关注的人

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