- 博客(26)
- 收藏
- 关注
原创 代码随想录--数组--二刷总结篇(C++)ACM模式
思路上有问题的是209长度最小的子数组,没想到滑动窗口的思路代码有问题的是螺旋矩阵,思路是根据轮次确定每条边的开始数字和结束数字,//从右下到左下这条边需要的是是行数–写出++;
2023-08-15 14:07:09 175
原创 代码随想录算法训练营14期-第十章 单调栈
给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用 0 来代替。这里使用单调递增栈来存储下标,当元素大于栈顶元素时弹出直到栈空或者不满足元素大于栈顶时退出;
2023-08-09 16:22:36 139
原创 【代码随想录算法训练营14期】-动态规划
有一堆石头,用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。每一回合,从中选出任意两块石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x <= y。那么粉碎的可能结果如下:如果 x == y,那么两块石头都会被完全粉碎;如果 x!= y,那么重量为 x 的石头将会完全粉碎,而重量为 y 的石头新重量为 y-x。最后,最多只会剩下一块 石头。返回此石头 最小的可能重量。如果没有石头剩下,就返回 0。
2023-08-07 22:04:59 159
原创 【代码随想录算法训练营14期】- day 31 -35第八章 贪心算法
● 理论基础● 455.分发饼干● 376. 摆动序列● 53. 最大子序和。
2023-07-27 11:22:16 261
原创 【代码随想录算法训练营14期】- day 23 第六章 二叉树part09
今日内容:● 669. 修剪二叉搜索树● 108.将有序数组转换为二叉搜索树● 538.把二叉搜索树转换为累加树● 总结篇。
2023-06-22 09:33:10 248 1
原创 【代码随想录算法训练营14期】- day 22 第六章 二叉树part08
今日内容:● 235. 二叉搜索树的最近公共祖先● 701.二叉搜索树中的插入操作● 450.删除二叉搜索树中的节点。
2023-06-17 17:33:58 107
原创 【代码随想录算法训练营14期】- day 21 第六章 二叉树part07
今日内容● 530.二叉搜索树的最小绝对差● 501.二叉搜索树中的众数● 236. 二叉树的最近公共祖先。
2023-06-16 23:21:09 133
原创 【代码随想录算法训练营14期】- day 20 第六章 二叉树part06
今日内容● 654.最大二叉树● 617.合并二叉树● 700.二叉搜索树中的搜索● 98.验证二叉搜索树。
2023-06-16 14:30:46 126
原创 【代码随想录算法训练营14期】-Day18 第六章 二叉树 part05
查找最左下角的值,第一次理解到遍历全局变量,则引用地址&路径总是在递归查找叶节点前序遍历中序遍历分割时创建数组使用 rightPre(preorder.begin() + leftIn.size() + 1, preorder.end());
2023-06-14 11:13:25 121
原创 【代码随想录算法训练营14期】- day 17 第六章 二叉树part04
二叉树递归函数如果有返回值,那么遍历时要return返回值;递归函数没有返回值,答案加入数组,传递数组地址&,不需要return,直接运行函数对于第三个左叶子节点,因为返回值每次都是0return,故需要把ans放入return中,相当于每次递归都是ans+0+0;最后累计;
2023-05-30 11:17:10 184
原创 【代码随想录算法训练营14期】- day 16 第六章 二叉树part03
我理解的是对每个节点就把他当成一颗子树去理解,因为树的子树还是一颗树可以找递归的条件。
2023-05-25 16:10:51 113
原创 【代码随想录算法训练营14期】-Day15 第六章 二叉树 part02
层次遍历,使用队列暂存元素,计算每层节点数量,分层遍历节点,每遍历一个节点,存入数组,弹出队列,并把左右非空儿子加入队列;翻转二叉树前后序递归均可对称二叉树,递归检验左右子树,首先判断节点存在性,再判断值相同性。
2023-05-25 15:52:12 128
原创 【代码随想录算法训练营14期】-Day14- 第六章 二叉树part01
递归法递归法遍历使用数组记录遍历顺序,前序push,left,right;中序left,push,right,后序left,right,push;迭代法迭代法使用栈的特点,前序遍历一个节点就push,判断左右是否为空,不为空放入栈(先进后出,所以先右后左儿子);后序遍历为中右左,反转数组为中左右;中序遍历因为push和遍历不是同步的,故用额外指针cur遍历,遍历的节点都存入栈,一直遍历左儿子,节点为空时,取出栈头(根)节点push,遍历右儿子…直到栈为空而且cur也空才停止。
2023-05-24 10:59:11 182
原创 【代码随想录算法训练营14期】Day13- 第五章 栈与队列part03
优先队列priority_queue:优先队列,本质是堆实现。与队列不同的是,priority_queue只能访问队列头部的信息(使用top),且插入元素后,会自动排序。基本操作top(): 访问队头元素empty(): 队列是否为空size():返回队列内元素个数push():插入元素到队尾 (并排序)emplace():原地构造一个元素并插入队列pop():弹出队头元素swap():交换内容定义Type :优先队列中元素的数据类型。
2023-05-23 14:34:17 81
原创 【代码随想录算法训练营14期】Day11- 第五章 栈与队列part02
题目的思路在考研复习中都做过,主要是一些函数的使用和栈的操作函数熟悉一下。
2023-05-21 18:50:12 125 1
原创 【代码随想录算法训练营14期】Day10- 第五章 栈与队列part01
栈stack s1;栈顶top(),pop();队列queue q1;front()
2023-05-21 14:35:18 104 1
原创 【代码随想录训练营14期】Day9-第四章 字符串part02
kmp算法精髓就是next数组的生成,next数组给出两个字符不相同的时候子字符串下一步到的位置,生成next数组,就是查找最长相同前后缀的长度,使用指针i循环(i指向后缀末尾理解后缀子串末尾),j是前缀末尾,如果i和j字符相同,那么j可以往后移位即j++,i++;如果i和j不同那么j要一直回退,回退到i和j字符串相同或者起始位置。
2023-05-21 11:23:28 118 1
原创 【代码随想录训练营14期】Day7-第三章 哈希表part02
哈希表这节四数相加不同数组可以使用哈希法,map存储key和以及value和出现的次数,如果是同一数组不同下标使用双指针法,就是要注意去重和剪枝。
2023-05-17 11:04:19 230
原创 代码随想录算法训练营14期-Day4-第二章 链表part01
链表总是会遇到空指针next情况,特别是两个节点的交换,报错几次,判断好临界条件,指针顺序为p>next=pre,pre->next=cur;一种是单数长度,交换的下一个为空,此时pre->next为空,即p->next->next,二是双数长度,此时pre为空,即p->next.
2023-05-14 18:20:05 173
原创 代码随想录算法训练营14期-Day1-数组part01
在升序数组中查找目标值target,我们知道当当前值小于target,那么target所处位置下标在其右端区间,当当前值大于target,那么target所处位置下标在其左端区间,故我们使用二分法,在给定区间[letf,right]内取其中点下标mid,比较mid所在值和target大小,如果相等就是我们要查找的目标值,如果mid所在值>target,说明目标值在mid的左边区间,如果mid所在值
2023-04-27 10:54:19 221 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人