自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 动态规划01

视频讲解:https://www.bilibili.com/video/BV16G411c7yZ。视频讲解:https://www.bilibili.com/video/BV1ve4y1x7Eu。视频讲解:https://www.bilibili.com/video/BV1Ld4y1k7c6。视频:https://www.bilibili.com/video/BV1f5411K7mo。视频:https://www.bilibili.com/video/BV17h411h7UH。

2024-10-14 23:00:09 327

原创 贪心题目总结02

刚开始思考的时候觉得想昨天的题目(摆动序列)一样需要去找准波峰和波谷,其实根本不用,这道题只要记录好区间,只取到正利润的区间就好了。注意只有一个点的意思就是到终点了,整体思路就是记录好当前可到达的最大区间,如果比数组的size大就可以返回true。

2024-09-23 11:01:46 357

原创 贪心题目总结01

注意两层遍历的顺序不可以错,因为要满足尽可能多的胃口,而不是饼干,胃口永远是走的比较快的,饼干自减的速度比较慢,因为要保证饼干的数字尽可能是大的。贪心相关的题目基本就是模拟题目的要求,如果看了几分钟妹有思路就早点研究题解吧。记录前一个差值和当前的差值,如果符号不同就结果加一。

2024-09-22 22:12:44 338

原创 回溯算法题目总结04

全排列要求的是每一个元素在这个树杈上不可以被重复使用,这里不需要记录开始查询的下标,而是要弄一个记录是否元素被使用过的数组,如果发现被使用过就跳过这个元素进入下一次循环。,因为 used[i - 1] 要一直是 true 或者一直是false 才可以,而不是 一会是true 一会又是false。所以这个条件要写上。如果找到了,它会返回一个指向该元素的迭代器;uset在每一层中都会重新初始化,所以他只负责记录当前一层中该元素是否被使用过。本题关键在于同层树中,不可以使用一样的元素,但是在同一个树枝中可以。

2024-09-18 13:08:29 489

原创 回溯算法题目总结03

回溯做多了,训练成板子题了,这道题注意考虑不可以重复,而且来一个就要往结果里面放,甚至可以不需要结束递归的条件因为本来for循环就会停止。40.组合总和II 和 78.子集的结合版。

2024-09-17 21:42:15 242

原创 回溯算法题目总结02

注意昨天的题目,递归时候下标加一是代表元素只能用一次,但是这里不需要加一,代表本身这个元素可以重复使用,但是最终不会出现重复的结果类似于(223)(322)这样,因为循环控制后就不会再走回头路。都知道组合问题可以抽象为树形结构,那么“使用过”在这个树形结构上是有两个维度的,一个维度是同一树枝上使用过,一个维度是同一树层上使用过。回看一下题目,元素在同一个组合内是可以重复的,怎么重复都没事,但两个组合不能相同。要在搜索的过程中就去掉重复组合。这么一说好像很简单!

2024-09-17 15:58:08 547

原创 回溯算法题目总结01

使用三个全局变量,一个记录结果,path数组用来记录每一次回溯得到的结果,当path中的元素个数是k的时候就说明一个存好了一个组合好的内容,把结果放入res后,就会递归调用把path清空。按照上面的思路一把写过,把控制条件按要求改一下,注意对path的清空,还有判断条件中的return的位置。对于每一层中数字和字母的映射,是在每一层中进行对应好的,不然就会增多参数的传递量。这道题如果直接暴力解决的话,会出现k层的循环,一旦层数多起来就很难解决。整个过程就是k为多少,就会存在多少层调用。

2024-09-16 14:48:18 315

原创 代码随想录第14 15天 二叉树题目合集

要检查左右子树是否为空的情况,根节点一边为空这种情况不是最小深度,要去另一边继续找到正确的叶子结点。想好递归的结束条件,递归进行下去就是把两个子节点先进行交换。

2024-07-17 21:00:14 219

原创 代码随想录第13天 二叉树(1)

注意递归的终止条件,传入参数和返回值,仔细检查可行性,防止栈溢出。

2024-07-15 19:48:00 361

原创 代码随想录第10天 栈和队列

【代码】代码随想录第10天 栈和队列。

2024-07-12 16:58:54 277

原创 代码随想录第9天 字符串相关题目(2)

对于删除空格的操作,双指针,用一个slow来操作,加上空格就开始挪,挪到一个单词的结束。三步走,移除多余空格,整体逆序字符串,每个单词内部逆序(变为正序)要把后面的一部分整体挪到前面来,先整体逆序,再对两个部分分别逆序。kmp问题以后再说,今天先挖个小坑。

2024-07-12 10:12:55 254

原创 代码随想录第8天 字符串相关题目(1)

统计字符串中数字的个数,之后按数字个数进行扩容,一个指针指向原来的末尾,另一个指向新扩容后的末尾,碰到数字就替换,没碰到就把原来的字母挪进来。不要使用库函数,纯纯考一下reverse的底层是怎么实现的。注意本题是acm模式,把输入可以放在循环中进行输入输出。

2024-07-10 21:34:08 275

原创 代码随想录第7天 哈希表相关题目(2)

先把前两个数的和以及出现的个数存在map中,然后遍历后面两个数组,在map中看看是否能匹配到四数和为零,如果为零,给结果加上键值对value(出现的次数)用哈希的话,去重操作比较复杂,这里用双指针进行操作,在循环的过程中对三个元素进行去重。继续学习和熟悉map set的相关用法。很简单,搞一个数组就行,和。

2024-07-09 15:14:21 374

原创 代码随想录第6天 哈希表相关题目

搞一个26个元素大小的数组,把各个字母的个数放进去统计,最后再比较,用到哈希的思想。整一个map,放置元素和下标,每次放置时与目标进行对比。这道题目没有限制数值的大小,无法使用数组来做哈希表。学会使用unordered_map。注意:取到数字每一位进行平方的操作。​ 循环条件的判断。

2024-07-08 22:35:14 218

原创 代码随想录第4天链表相关题目

方法一:比较两个链表的长度,然后拉齐尾部(让长的链表指向差值位置),同时开始向后走并进行比较,找到了相同的指针就返回这个公共的节点,如果走到最后就返回空。纯纯数学推导题,记一下就行,快指针走两步,慢指针走一步,找到相遇位置,找到相遇位置之后同时从该位置和head开始走两个指针,相遇位置就是入口,返回即可。妙妙妙~~A走完换到B,B走完换到A,最后走到公共节点位置的总距离是一样的,如果找到了就是公共节点,或者就是null。用两个指针岔开n个距离进行同时遍历,快指针达到尾部后说明慢指针指向了要删除的位置。

2024-07-06 17:34:33 254

原创 代码随想录第3天203.移除链表元素 707. 设计链表

假设一个头结点来便于操作,把head给到头结点的下一个位置,把整个链表给到cur来进行操作,因为要留出一个节点记录初始位置,在删除的过程中要进行delete掉多余的节点,最后删掉头部的虚拟节点。关键是循环中的四步,通过双指针要记录好每两个需要操作的节点,先用临时指针保存好下一个要操作的位置再进行指针的转向,转向后更新pre到当前cur位置,cur变成第一步用tmp存起来的节点位置。创造一个头结点来方便解决问题,注意delete掉多余的元素释放空间。

2024-07-05 20:07:15 460

原创 代码随想录第二天977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II

首先左边不动,右边开到最大使这个区间符合条件,然后缩小左边,缩小到不符合条件就扩大右边,直到右边碰到了边界停止。双指针问题,前后各指向一个元素,比较大小,大的就放里面,移动指针,最后直到所有的元素放在新的vector中返回。中间元素单独处理,每一圈控制好前后位置,比如4×4,最外层循环只改变三个量,达到四个步骤的均衡。第一个循环控制右边界的大小,内层循环表示当达到条件后缩小窗口。每一层控制缩圈边界减一,起始位置都加一。

2024-07-04 21:18:03 549

原创 代码随想录第一天|704.二分查找 27. 移除元素

要在二分查找的过程中,保持不变量,就是在while寻找中每一次边界的处理都要坚持根据区间的定义来操作,这就是。

2024-07-03 18:50:02 559 1

空空如也

空空如也

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

TA关注的人

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