自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 代码随想录Day9

对于this->pop()理解。不要忘记pop()的括号!

2024-08-24 22:55:13 268

原创 代码随想录Day8

npos可以表示string的结束位子,是string::type_size 类型的,也就是find()返回的类型。find函数在找不到指定值得情况下会返回string::npos。同上一题,先反转整个字符串,接着对应板块各自反转;移除开头中间结尾的多余空格;注:本题还可考虑用KMP。

2024-08-22 07:25:11 325

原创 代码随想录Day7

每2k个,前k个颠倒;一直到最后,少于2k,有两种情况,一种k~2k,则前k个颠倒,后面不变,另一种0~k个,则全部颠倒。将数字改为“number”要从后往前增加(从前往后,则每添加新的元素,就要将后面所有元素往后移,时间开销大)统计共有多少数字,确定变换后的s长度;遍历的跳步是2k为单位;reverse的使用;

2024-08-21 23:50:56 238

原创 代码随想录Day6

因为数组是从小到大排序的,所以若和大于0,则right往前移,如果和小于0,则left往后移,i为最外层的遍历。当遍历时,选择i-1与i还是i与i+1,找特殊例子[-1,-1,2],该结果符合要求但是如果使用i与i+1则会导致该结果被忽略,所以采用i-1与i.记录杂志中的各个字母出现次数,并进行次数统计,之后遍历ransomNote时,每次出现的字母进行对应次数减1,次数出现负数则说明不能表示。再遍历nums3,nums4,计算0-c-d,在map中查找是否出现该元素,有,统计对应出现次数。

2024-08-20 23:47:01 296

原创 代码随想录Day5

但本题没有限制数值大小,且若不同数值个数较少,占用数组空间较大浪费,那么考虑哈希,使用结构体set。当我们需要查询一个元素是否出现过,或者一个元素是否在集合里的时候,就要第一时间想到哈希法。看到无限循环,想到sum求和会有重复,可以考虑使用hash判断一个元素是否出现在集合里。知识点:用find这个函数,去找str这个序列中的i元素,如果序列中所找的这个元素。遍历完后,再次对整个数组 进行遍历,判断是否数组的各个数值均为0。本题要求,结果各元素唯一,可以无序,所以考虑数组或者hash表,

2024-08-19 22:12:24 609

原创 代码随想录 Day4

关键思想:头结点前设置一个虚拟结点,利用双指针(fast,slow)定位倒数第N个结点——一个指针先移动N+1位,之后两指针同步后移,直到偏后面的指针指向表尾;这种情况和n为1的时候效果一样,只是index1指针在环里多转了(n-1)圈,然后再遇到index2,相遇点依然是环形的入口节点。让index1和index2同时移动,每次移动一个节点, 相遇的地方就是环形入口的节点。快慢指针思想,设置两个指针,从头结点开始,一个每次走一步,一个每次走两步。各新增定位指针从较短链表的头结点所在位置开始,

2024-08-18 00:08:30 717

原创 代码随想录 DAY3

NULL与nullptr区别——NULL在C++中就是0,C++11加入了nullptr,可以保证在任何情况下都代表空指针;利用temp定位下一个转向的节点,防止前面在翻转时,找不到下一个节点;范围限定->遍历定位->对应操作->善后处理(长度,头结点,野指针)内容量相比之前要大一点,但是基础经典,必须要会,需要多巩固重复。1.单独判断删除的是否为头结点,并单独处理;2.增加虚拟头结点,统一所有结点的处理方式;其他2种方法:递归法、从后向前翻转法。从前往后翻转节点指向;将双指针法进行递归简化。

2024-08-16 22:34:02 311

原创 代码随想录Day2

3.选择while不是if,因为当进行一次减掉最前面的数值后,不一定就是最短子数组,需要继续重新判断,举例:[1,1,1,100] target=100,则最短子数组长度为1,但是如果使用if,则最短子数组长度为3;【坑】看清题目,是大于等于target,不是只有等于,感觉不对劲也要再回去审题,避免时间浪费,可以先看这个代码最后实现什么功能,不用使劲往预期的题目上凑,读题习惯要改。1.只用一个循环,那么这个指针主要是用来定位末尾的,反过来想,若定位首指针,那没有意义,末尾就无法控制;

2024-08-15 22:57:46 595

原创 代码随想录Day1

2.题目所给前提条件是已给数组中数据不重复,且是有序的——在此基础上可以使用二分查找,不然有重复的,其实对于定位下标是不准确的;1.确定左右区间是左闭右闭,还是左闭右开——决定left<= or <right,以及middle是否加减1;1.因为是原地移除,所以经典思想就是忽略重复的数值所在空间,让后面的数依次向前直接移动;3.关于middle的初始化需要直接记住,包括“/2”等价于“>>1”;待进步:双指针学习;vector容器的性质与使用。封装快排直接使用,需要提前储备一些内容;

2024-08-14 23:47:02 250

空空如也

空空如也

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

TA关注的人

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