自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 c++的查漏补缺 1、函数指针

以上代码实际上是无法更改head的指的,因为此时这里的head只是原链表头head的一个复制,就是没有引用的形参,我一开始被他指针的外表迷惑了,认为只要传入指针就是对原内容进行修改了。但实际上我在日常使用时,使用指针修改的是这块地址上对应的变量的值,相当于指针的上一级的内容。确实是很基础的内容了,之前一直在用python,对c++落下的有点多了,加油查漏补缺吧。今天写链表的插入排序时遇到了一个问题。

2024-05-25 17:27:22 237

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

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

2024-05-07 17:20:19 378

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

蓝色表示遍历顺序。

2024-05-05 14:35:51 185

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

【代码】代码随想录算法训练营33期 第五十六天 | 583. 两个字符串的删除操作、72.编辑距离。

2024-05-01 20:42:45 97

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

注意dp数组的可视化如下,dp的大小为dp(s.size()+1, vector(t.size()+1, 0));

2024-04-29 15:00:25 97

原创 代码随想录算法训练营33期 第五十三天 | 718. 最长重复子数组回顾、1143.最长公共子序列、1035.不相交的线、53. 最大子数组和

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

2024-04-26 15:38:45 125

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

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

2024-04-26 11:25:35 111

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

dp[i][0] 不操作;d[i][1]第一次开始持有股票//dp[i]当前天i的价值情况,dp[i][0]表示不操作的最大价值,dp[i][1]在当前天第一次持有的最大价值,dp[i][2]在当前天第一次卖出的最大价值, dp[i][3]在当前天第二次持有的最大价值, dp[i][4]在当前天第二次卖出的最大价值public:dp[0][0]=0;dp[0][2]=0;dp[0][4]=0;i++){

2024-04-24 17:06:59 507

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

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

2024-04-23 16:36:36 98

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

第一题比较简单,也很好想。dp的定义,递推公式以及初始化都不难。

2024-04-22 10:50:02 175

原创 代码随想录算法训练营33期 第四十六天 |139. 单词拆分、56. 携带矿石资源

【代码】代码随想录算法训练营33期 第四十六天 |139. 单词拆分、56. 携带矿石资源。

2024-04-20 10:40:08 121

原创 代码随想录算法训练营33期 第四十五天 |518. 零钱兑换 II(搞懂了)、57. 爬楼梯、322. 零钱兑换、279. 完全平方数

针对背包的组合,先遍历物品再遍历背包。就是尝试用不同个数不同价值的物品填满总价为j的背包。针对物品的排列,先遍历背包再遍历物品。对于一个固定价值的背包,用各种物品去填满它。如果求组合数就是外层for循环遍历物品,内层for遍历背包。如果求排列数就是外层for遍历背包,内层for循环遍历物品。

2024-04-19 11:36:19 115

原创 代码随想录算法训练营33期 第六十四天 | 总结篇

主要就是在遍历背包时从前往后遍历,由于可以一个种类的物品可以无限使用,所以背包容量增加时,从前往后遍历也能使用到左侧更新完价值但容量更小的背包的数据。为什么这题我能写出来,上题写不出来?

2024-04-18 22:43:30 261

原创 代码随想录算法训练营33期 第四十三天|416.分割等和子集、1049.最后一块石头的重量II、474.一和零

/ 思路:将石头分为重量相似的两堆// 1、dp[j] 重量j的背包的最大价值// 3、递推公式dp[j]=min(dp[j], dp[j-1]-stone[i]);// 4、顺序:按序号升序遍历物品种类i,按背包容量降序尝试插入种类i// 5、打印dppublic:int sum=0;sum+=i;dp[0] = 0;

2024-04-17 22:12:33 162

原创 代码随想录算法训练营33期 第四十二天 |01背包问题 二维、01背包问题 一维

int。

2024-04-16 16:34:06 120

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

【代码】代码随想录算法训练营33期 第四十一天 |343. 整数拆分、96. 不同的二叉搜索树。

2024-04-15 14:49:44 77

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

int我觉得最难想的是两点1、初始化第一行和第一列为12、递推公式为dp[i][j] = dp[i-1][j] + dp[i][j-1];通过左和上方的元素来递推。

2024-04-14 00:13:04 187

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

注意楼梯顶部位置为cost.size(),此处没有对应的cost因为已经到顶了。

2024-04-12 09:46:58 153

原创 代码随想录算法训练营33期 第三十七天 |738.单调自增的数字、贪心总结

题目比较难读懂注意一下代码的写法数组转string:to_string(n);字符串转int:stoi(num);

2024-04-11 15:03:18 143

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

这道题比想象中更巧妙,我觉得和上一道题射气球其实不一样。射气球维护的是一个重叠区间范围,所以每次都将上一个区间的右边界维护为最小的那个,保证这个区间内的元素都是重叠的,如果超过了上一个最大右边界的右区间就说明当前元素和上一个最大区间不能合并,必须增加一支箭。对于本题,我觉得维护最大重叠区域范围的思路并不好想,看了评论区才明白,intervals[i][1]= min(intervals[i][1], intervals[i-1][1]);

2024-04-10 17:06:03 288

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

思路:先以k升序排列,确保每个人前面比自己高的人的数量没问题。再按身高降序排列,保证前面的人一定比后面的人高。第二次排序按照k即前面有几个人比我高排序,如果当前元素的k比小于自己的序号i则说明位置不对,因为前面的人都比我高,但是我前面的人比我多,说明我应该在更前面的位置,所以直接将钙元素向前插入第k个位置。

2024-04-08 23:38:34 96

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

三种情况:1、负数总是对sum造成负影响,所以我们的希望绝对值大的负数取反为正数。2、0没影响,所以当序列元素均大于等于0时,可以不断对0操作保证不对sum产生负影响。3、越小的正数取反对sum影响越小。思路:将整个序列排序后,总是对较小的数取反,每次取反后重新排序。

2024-04-08 11:08:25 125

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

每天都尝试交易,但是只有在利润为正的那些日子才卖出。

2024-04-06 11:40:13 217

原创 代码随想录算法训练营33期 第三十二天(补29) | 491. 非递减子序列、46. 全排列、47. 全排列 II

组合不强调顺序,排列强调顺序。

2024-04-05 17:58:43 242

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

错误:j>=0忘了加上,饼干比小孩少,所以饼干可能会在遍历完小孩之前就分发光了。

2024-04-04 20:46:51 175

原创 代码随想录算法训练营33期 第三十天(待做三道题)| 332.重新安排行程、51. N皇后、37. 解数独

for循环横向遍历,递归纵向遍历,回溯不断调整结果集

2024-04-03 23:44:05 99

原创 代码随想录算法训练营33期 第二十九天(补第二十八天)| 93.复原IP地址、78.子集、 90.子集II

【代码】代码随想录算法训练营33期 第三十天(补第二十九天)| 93.复原IP地址、78.子集、 90.子集II。

2024-04-03 23:36:51 132

原创 代码随想录算法训练营33期 第二十七天 | 39. 组合总和、40.组合总和II

1、如果不用used数组,直接将相同的元素删除,会导致结果缺失。比如[1,1,1,1,1,1,1,2,3] target=6;显而易见[1,1,1,1,1,1]这个满足条件的数组会被舍弃。但是增加了used数组后,对于[1,1,1,1,1,1,1,2,3], 在path=[1]程序运行到第二个1时,used[i-1]==false,不会跳过执行。2、但是对于第二个1,因为此时i=1无法根据i>0这个条件为used[1]设置为true,第二个1包括后面的所有1都会被跳过。这道题的去重非常适合仔细研究,

2024-04-01 20:54:19 199

原创 动态规划预习

看清了是有obstacle的地方为1.

2024-03-31 19:52:36 106

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

回忆一下昨天写的组合,很容易能写出来答案。主要是对终止处理那里进行了修改,增加了对path的和的筛选。初见杀。

2024-03-30 22:07:09 146

原创 代码随想录算法训练营33期 第二十四天| 77. 组合

感觉还行,不是特别难,按照回溯三部曲可以写出来。不着急写形参,需要什么加什么。

2024-03-29 10:50:29 192

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

108.将有序数组转换为二叉搜索树。

2024-03-28 13:11:39 107

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

左不为空且右不为空时,可以将需要删除节点的左/右孩子任一个替代当前节点。如果将右孩子替代当前节点,就将原左子树放在原右孩子的最左下角的节点位置。因为这个位置是小于整个原右子树的位置,符合二叉搜索树的特性,之后删除当前节点,将当前节点的父节点直接与原右孩子相连接。

2024-03-27 17:31:00 179

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

这里有一个容易疑惑的点就是并没有显式的回溯。对于下列二叉树,使用上述算法搜索最小绝对差。实际上的参数。

2024-03-26 11:26:09 201

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

思路:返回值和形参:构造好的二叉树的根节点和数组终止条件:使用前序遍历完成对整个树的构造或者当前节点为叶子结点时返回root。处理过程:前序遍历。坑:必须这样初始化TreeNode* root = new TreeNode(0);这样直接定义会报错SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior prog_joined.cpp:38:15。

2024-03-25 15:47:57 168

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

先复习了一遍层序遍历。犯的错误:将 int max_depth = INT_MIN;放在了traversal()中遍历;这会导致每次递归max_depth 都会被更新致使每次遍历都会更新结果bottomLeft。

2024-03-23 16:43:53 175

原创 代码随想录算法训练营33期 第十七天| 110.平衡二叉树 (优先掌握递归)、257. 二叉树的所有路径 (优先掌握递归)、404.左叶子之和 (优先掌握递归)

其实就是一个求最大深度,增加了对于每个节点点左右子树深度的判断。

2024-03-22 16:54:07 156

原创 代码随想录算法训练营33期 第十六天|104.二叉树的最大深度 (优先掌握递归)、111.二叉树的最小深度 (优先掌握递归)、222.完全二叉树的节点个数(优先掌握递归)

二叉树的高度:该结点到叶子结点的差值+1,即叶子节点的高度为1二叉树的深度:该节点到根节点的差值+1,根节点高度为1.

2024-03-21 15:57:50 180 1

原创 代码随想录算法训练营33期 第十四天|层序遍历、226.翻转二叉树 (优先掌握递归)、101. 对称二叉树 (优先掌握递归)

关键点:两层while,内层while根据每层的size负责处理每层的节点信息。

2024-03-20 17:01:10 190 1

原创 代码随想录算法训练营33期 第十四天| 递归遍历 (必须掌握)、 迭代遍历 、统一迭代

还是比较好理解的,递归终止条件为当前节点为空,即在某一个方向深度搜索到了最低点。

2024-03-19 21:24:46 124

空空如也

空空如也

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

TA关注的人

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