自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 代码随想录打卡day12

要点:for循环中deque为空的情况,是还在遍历中,但是deque已经为空了,说明deque中此时没有括号去匹配s中当前遍历到的右括号了,所以应该是s中少了左括号。最后如果返回中的判空如果不为空,是因为多了左括号。注意点:-和/要特殊处理是因为,从stack中弹出的两个操作数顺序跟原本顺序相反,不影响加和乘运算,但减和除运算操作数顺序不能颠倒。注意点:str的作用是让deque中弹出来的元素拼接到前一个弹出来的元素前边,相当于反转弹出的元素顺序。力扣题目:20.有效的括号。

2025-06-02 11:31:55 251

原创 代码随想录打卡day11

力扣题目:232.用栈实现队列。

2025-06-01 23:15:47 232

原创 代码随想录打卡day10

去多余空格逻辑正确,翻转逻辑错误,我是把每个单词反转过来,而不是交换单词的位置,正确思路应该是将整个字符串翻转过来,然后翻转每个单词。思路:即如果一个字符串s与它自身拼接成新的字符串(s+s),如果这个新的字符串去除首尾字符后包含s,那么s就是由重复的子字符串构成的。我的代码:无(当时对kmp算法还不是特别熟悉,有些细节不懂,这里建议如果有跟我一样问题的,问ai就行,哪点不懂就一直问到懂为止)注意点:指针j会回退,但i是一值稳定向前走的(遍历字符串),不要弄混了,j回退的时候不影响i向后遍历。

2025-06-01 14:40:31 177

原创 代码随想录打卡day9(字符串)

1.i+k-1,相当于到翻转结束位置的下标,如果字符串剩余长度不足k个,那么就反转剩余的不足k个的所有字符,所有用Math.min方法,就不用再判断剩余字符还有多少个了。2.reverse中的i与len是翻转的起始位置到终止位置,并不一定就是字符串的开头与结尾。2.不必加上对j的限制条件,因为i,j同步移动,限制了i,也就限制了j。1.i<s.length/2,这个细节不理解的话可以举几个具体例子。力扣题目:541.反转字符串2。力扣题目:344.反转字符串。

2025-04-01 13:21:01 187

原创 代码随想录打卡day8(哈希表)

2.两个处理left和right重复情况的while细节,应该放到最后一个else里边,逻辑是,当i,left,right符合要求时,加入res后,移动left和right位置后再去判断新的left和right的位置是否与前边重复,如果放到外边,会造成这种情况当nums【i】为-1,nums【left】也为-1,nums【right】为4,并且nums【right-1】为2时,代码的下一步会直降将nums【left】向前走一步,这样就把-1,-1,2这个三元组忽略了。我的代码:(暴力,已通过)

2025-03-28 09:20:47 464

原创 代码随想录打卡day7(哈希表)

2.map中如果有重复的键,新元素下标会将旧元素下标覆盖(但此题不会出现这种情况,题目说明了答案唯一)1.这里的键是数组中的元素,值是数组中元素的下标,目的是方便快速找到符合题目要求的值的在数组中的下标。我的代码:无(对set,map不熟悉,不会用)我的代码:无(还不知道map具体怎么用)力扣题目:242.有效的字母异位词。代码随想录上的代码(字典解法);力扣题目:349.两个数组的交集。力扣题目:202.快乐数。力扣题目:1.两数之和。

2025-03-23 11:21:48 205

原创 代码随想录打卡day6(链表)

2.返回dummy.next而不是dummy(虚拟头结点),返回dummy会多出来一个0。1.cur.next是cur的指向,同时也代表它的下一个节点。力扣题目:19.删除链表的倒数第N个结点。力扣题目:24.两两交换链表中的节点。力扣题目:142.环形链表2。

2025-03-21 18:40:00 226

原创 代码随想录打卡day5(链表)

1.注意reverse函数里的参数,转换后要对应,刚开始是head对应形参cur,null对应形参pre,后边经过变换,变为tem对应形参cur,cur对应形参pre。2.tem要在reverse方法内定义(刚开始我把tem定义到了reverseList里边)1.一开始不要把cur赋值给tem,而是cur.next,因为后边cur.next指向会变。2.最后返回的是pre,不是cur(cur循环后为空)力扣题目:206.反转链表。

2025-03-18 19:57:50 151

原创 代码随想录打卡day4(链表)

2.注意循环细节,遍历结束位置(有时候需要cur(用来遍历的)遍历到索引位置(例如get方法),而有时候需要遍历到索引位置前(例如addAtIndex方法)),注意遍历循环次数(切记索引从0开始),注意遍历开始的位置是head,还是head.next(这里的head是虚拟头结点,一般来说,删除,插入到索引前这些操作开始位置为head,寻找某个节点这类操作开始位置为head.next)1.注意代码的健壮性,先判断是否合法,输入合法的时候有些情况就不需要考虑空指针异常的问题(例如get方法),

2025-03-18 10:43:53 310

原创 代码随想录打卡day3(数组)

2.在处理奇数阶矩阵中心元素填充时,使用 nums[i][j] = count;因为经过前面的循环,i 和 j 的值已经不符合中心元素的坐标,应该使用 nums[n / 2][n / 2] = count;来填充中心元素{或者用[startx][starty]也行。卡哥的视频讲解中,如果n为奇数,矩阵的中心即为nums[i][j],但我写的代码和随想录网站上的代码,这样写都会报错,问了别人,说那个i,j的含义是startx跟starty,开始,因为当前要填充的是从。力扣题目:59螺旋矩阵2。

2025-03-15 21:39:58 372

原创 代码随想录打卡day2(数组)

现在大概明白了,慢指针相当于在创建一个新的数组,快指针的目的是遍历数组,快指针遍历的时候,将符合的元素按顺序覆盖到慢指针所指向的‘新数组中’2.返回值直接就是slow,因最后一次执行if语句时,slow从指向“新数组”中的最后一个元素变为了指向这个元素后一个元素,那么正好是新数组的长度。1.nums数组我是直接调用length函数的,没有考虑到后边过程中数组长度的变化(非真实变化,空间未变)3.想到了i--,未考虑到数组长度也应该减一(不是nums--,是len(数组当前长度)--)

2025-03-14 13:49:34 259

原创 代码随想录打卡day1(数组)

了解了二分法,尤其是细节处理的问题,前闭后闭和前闭后开的处理方法不同,前者一般while循环中是left<=right,后者是left<right(这一点还未懂究竟是为什么)3.错误1导致while中的比较也是错误的(后边修改的时候又忘了,middle表示的是下标,target是目标值,应该是用num【right】与num【left】比较)心得:真没想到看似这么简单的一道题,我错的这么多,有时候思路通了,但是具体写的时候会有很多细节上的问题,眼高手低的问题暴露无遗,惭愧。

2025-03-13 23:46:48 194

空空如也

空空如也

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

TA关注的人

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