自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 代码随想录打卡第40天:单调栈解决下一个更大元素

打卡第41天:单调栈解决下一个最大元素的两种情况。

2024-06-03 10:59:00 263

原创 [sylar]后端学习:配置环境(一)

sylar后端环境配置:基于第一个视频的相关学习与其中遇到的问题及解决方案

2024-06-01 20:40:59 445

原创 代码随想录打卡第39天:单调栈

打卡第39天:初步认识单调栈,并利用单调栈解决每日温度

2024-05-29 11:15:50 335

原创 代码随想录打卡第38天:动态规划解决编辑距离和回文串

打卡第38天:动态规划解决编辑距离问题和回文子串问题

2024-05-23 19:50:32 945

原创 代码随想录打卡第37天:动态规划解决子序列问题2

打卡第37天:动态规划解决子序列问题2

2024-05-22 20:07:43 1953

原创 代码随想录训练营打卡第36天:动态规划解决子序列问题

打卡第36天:动态规划解决子序列问题

2024-05-21 16:34:47 925

原创 代码随想录训练营打卡第35天:动态规划解决买卖股票问题

打卡第35天:动态规划解决买卖股票的相关问题

2024-05-20 17:17:21 680

原创 代码随想录训练营Day34:背包问题解决打家劫舍

补打卡第34天:背包问题解决不同情况下的打家劫舍的问题

2024-05-20 15:46:44 317

原创 代码随想录训练营Day33:完全背包问题2

打卡第33天:完全背包第二天,解决零钱兑换、完全平方数和单词拆分问题。

2024-05-16 11:27:52 447

原创 代码随想录训练营Day32:动态规划:完全背包问题

第32天打卡:完全背包解决爬楼梯、零钱兑换和组合问题

2024-05-15 16:16:08 353

原创 二分查找:74搜索二维矩阵

二分查找在二维矩阵中的应用

2024-05-15 09:45:50 385

原创 代码随想录训练营Day31:动态规划3:0-1背包

打卡第31天:动态规划解决01背包问题:分割等和子集、最后一块石头的重量、目标和、一和零。

2024-05-14 16:37:59 874

原创 代码随想录训练营Day30:动态规划2

打卡第30天:动态规划第二天:62不同的路径、63不同的路径2、343整数拆分、96不同的搜索二叉树

2024-05-12 16:24:55 399

原创 代码随想录训练营Day29:动态规划1

动态规划入门:斐波那契数和爬楼问题

2024-05-11 16:06:40 441

原创 代码随想录训练营Day28:贪心算法06

贪心算法解决:738单调递增的数字、968监控二叉树

2024-05-10 19:40:10 379

原创 代码随想录训练营Day27:贪心算法05区间问题

思路:可以延续前面的引爆气球的思路,所以本题的贪心策略为:对于相同起始位置的,删去终点位置靠右的,只留下一个最靠左的。对于具有不同的起始位置的,但是存在重复的情况(即当前的left与前面的那个的right具有重复的地方),谁的更加靠右删除那个。最后就是如果无重复就不管了。

2024-05-09 23:21:11 207

原创 代码随想录训练营Day26:贪心算法:04

贪心策略:先找大钱,再找小钱,20的不参与找钱思路:用five,ten存放5元和10元的个数,初始化都是0,如果给的钱是5元,直接five++,如果给的是10元,只能找5,判断此时有没有5,有就找,没有就返回false,如果给的钱是20,分三种情况,1:有10元先找十元再找5元。2.没有10元,找三个5元。3.如果5元,10元都不够,返回false.

2024-05-08 16:45:59 345

原创 代码随想录训练营Day25:贪心算法:加油站、分发糖果和K次取反的最大数组和

贪心策略:先按照绝对值的大小进行排序,绝对值大的排在前面,然后按照顺序,如果存在负值就翻转直到用完k次,或者遍历完之后,将最小的那个进行翻转即可。

2024-05-07 19:32:50 260

原创 代码随想录训练营Day24:贪心算法解决买卖股票和跳跃游戏

贪心策略:按一天为时间,找到里面收益为正的时候,然后累加。

2024-05-06 11:06:28 158

原创 代码随想录训练营Day23:贪心算法1

贪心算法:选择每一个阶段的最优值从而达到一个全局最优。

2024-05-05 14:53:40 377

原创 代码随想录训练营Day22:回溯算法解决 重新安排行程、N皇后、解数独

这次的三个题目都是属于比较难的题目,也比较难想到相应的解决方法,需要经常复习。

2024-05-04 11:57:57 407

原创 代码随想录Day21:回溯算法解决子集和排列问题

在这个地方直接按照回溯算法三部曲的方法解决。需要注意的地方是result.push_back(path)的位置,为什么放在最前面呢,而不是放在这个下面的if语句呢?因为对于子集问题,我们需要的是树上节点所有的位置,前面的组合和分割问题是只需要叶子节点的位置,所以把这句话放在if语句里面。

2024-04-30 11:40:40 271

原创 代码随想录Day20:回溯算法解决切割问题

循环的输入参数:result,path,s为常规的输入参数,left,right可以合并为一个startindex,也是常规的一个输入参数。3.有两种方法来进行添加,前面那种是用一个新的path来存储,第二种就是直接在S中进行操作然后添加到result中。1添加了一个dotnum来确定添加了几个段,作为最终的一个终止条件。循环内的条件:需要先确定这一段是一个回文串,才能进行回溯算法。2.用isValid来判断这段是否满足为一个0-255的数字。类似于前面的分割回文串,但是分割的条件发生了改变。

2024-04-29 16:22:53 121

原创 代码随想录Day19:回溯算法2

思路:首先来说想到回溯算法可以解决组合问题,所以首先想到的就是一个回溯算法,按照回溯三部曲进行操作。其次看到里面的只能使用0-9和每个只能使用一次,所以可以对其进行剪枝操作减少对应的工作量。即确定当前到9的数的个数总和是否满足条件。剪枝:就是根据自己的一些提前的预处理,确定哪些一定是不能满足的条件,从而减少相应的一个工作量。

2024-04-28 23:09:11 546

原创 代码随想录训练营Day18:回溯算法

也可以叫做回溯搜索法,是一种递归的搜索算法。回溯算法的本质是一种递归算法,是一种暴力的递归方法,所以算法的复杂度比较高,唯一能做的就是剪枝来减少操作。回溯算法我们可以理解为一种树形结构,深度代表的是递归的深度,集合的大小代表宽度。回溯算法的基本的结构void backtracking(参数):这个里面的参数通常是result:最终的结果,path:一条路径的结果,index:一般用于遍历集合,还有一些其他的参数,具体需要根据实际在编写的过程中改写。if(终止条件){//或者其他操作return;

2024-04-26 21:48:32 224

原创 代码随想录训练营Day17:二叉树暂时完结

1.二叉树,搜索二叉树,平衡二叉树不同的性质。可以根据对应的性质来降低操作的复杂度。2.深度遍历和层次遍历的统一方式。3.构造二叉树。4.删除节点。5.查找公共祖先的问题:如何向上递归:回溯算法。

2024-04-25 23:35:51 320

原创 代码随想录训练营Day16:二叉树查找最近的公共祖先

两种方法来求解一个二叉搜索树中的众数。

2024-04-24 22:19:16 189

原创 代码随想录Day15:搜索二叉树

所以可以把搜索二叉树和中序遍历进行相结合得时候,那么此时遍历输出的数组就会是一个单调递增的数组,从而更好的帮忙解决关于搜索二叉树的题目。

2024-04-23 22:48:51 241

原创 代码随想录训练营Day14:二叉树03

树左下角的值,首先得条件就是要在最下面这一层,其次就是这一层的最左边,所以这个题目和层次遍历的方式很匹配。思路:按照层次遍历(广度)即可,稍微修改一下,每次result只取最左边的那个值,然后更新到最后就是树左下角的值了。

2024-04-22 20:15:17 287 2

原创 代码随想录训练营Day13:二叉树的广度遍历

广度遍历我们所运用的就是一个队列的方式进行遍历,因为队列的先进先出的方式比较符合一个逐层遍历的方式每一次压入队列的就是一层的元素,我们分成两层循环,第一层循环判断这个队列是否为空,第二层循环用于遍历这一层的所以有节点。具体的操作流程:首先是先将头结点压入,然后判断是否为空,如果非空,确定当前对应的队列的一个长度,根据这个长度来遍历这一层的值。为什么这个长度就是这一层的结点个数呢。

2024-04-18 22:07:42 343

原创 代码随想录训练营Day12:二叉树的遍历:144、94、145

那么对于这个三种不同的遍历方式,递归也有所不同。唯一不同的就是对应的一个每一层的递归逻辑。

2024-04-16 16:47:51 276

原创 代码随想录训练营Day11:栈和队列

思路:我们使用大根堆的优先队列存储窗口长度为k的数据,此时最大的那个数就位于top,注意:优先队列里面存储的一个数据对,存放的是《值,索引》的方式存储,先将最新的那个存入之后,判断此时的top是否位于里面(即q.top().second<=i-k),如果不位于里面,那么使用while的方式将不在里面的大的值弹出,此时那个位于里面的top值就是最大值。思路:分成三个部分,第一个部分用于统计每一个数的频率,使用哈希表来存储;第二个部分使用大根堆进行排序,将最大的 k 个存入到大根堆里面;第三部分用于遍历输出。

2024-04-15 19:38:37 149 1

原创 代码随想录Day10:栈与队列2

思路:栈存放表达式的值。在遍历的过程中如果遇到了运算符,将栈上面的两个元素取出,计算出此时的表达式的值,再存入栈。如果遇到了数字,直接存入栈即可。思路:字符匹配,根据新来的是不是和最近的那个是不是相匹配的方式来确定是否有效,这就和栈的思路很相匹配。最后的栈里面存放的就是不相邻的重复项,最后遍历放到string中即可。第二种全部遍历完成之后,栈如果不为空,那么就是不匹配。入栈的方式:该栈为空或该栈的顶不等于当前遍历的值。出栈的方式:如果该栈的顶等于当前的遍历的值。匹配:全部遍历完成之后,栈为空。

2024-04-13 22:36:47 149

原创 代码随想录Day9:栈和队列

注释中使用的是两个队列来完成入栈和出栈,对于出栈的时候,我们先将出队列的元素存放到另外一个队列中,然后留下最后一个,出队列即为我们需要的那个元素,然后将另外一个队列的元素重新压回队列,并清除另外一个队列里面的元素(保证代码的一致性,如果你不重新压回去的话,你下次就不知道到底是向哪一个队列入栈,哪一个队列出栈)。出栈的时候,将出队列的元素重新又压入队列同时进行类似于循环队列,我们只需要将需要的那元素放到队列最前方再出队列即可,那么此时移动的次数正好就是队列的长度-1(queue.size()-1)。

2024-04-12 10:54:52 441

原创 代码随想录训练营Day8:KMP算法小结

打卡第8天:KMP算法:前缀表next数组的匹配问题

2024-04-11 16:43:58 1654

原创 代码随想录训练营Day7:字符串01

打卡第7天:字符串问题:反转字符串的旋转字符串相关问题

2024-04-10 21:20:35 361 1

原创 代码随想录训练营Day6:哈希表02

打卡第六天:哈希表解决:454四数相加、赎金信、四数之和、三数之和

2024-04-09 16:43:13 397

原创 代码随想录打卡Day5:哈希表

打卡第五天:哈希表解决:242有效的字母异位词、349两个数组的交集、202快乐数、1两数之和

2024-04-08 10:53:11 503 2

原创 代码随想录训练营:Day4

打卡第四天:链表的交换、判断是否是环形链表、删除倒数第N个链表等

2024-04-06 15:23:56 412 1

原创 代码随想录刷题班Day3:链表

打卡第三天:链表的基础操作:虚拟头节点、链表反转、增删改查等

2024-04-05 20:43:48 161 1

空空如也

空空如也

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

TA关注的人

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