leetcode刷题打卡
文章平均质量分 74
铁中棠ang
这个作者很懒,什么都没留下…
展开
-
代码随想录打卡第十五天 | 二叉树2 层序遍历 | leetcode226&101
处理顺序:压入root 队列元素:1取出front,back, pop_front, pop_back(需先对队列判空,因为队列只有一个元素时,pop_front之后队列已空,不能使用pop_back),比较front和back,相等为空continue,不等返回false;相等不为空,分别push_front,push_back;//队列元素2,2,2,2(原创 2024-05-27 23:46:24 · 933 阅读 · 0 评论 -
代码随想录第十四天 | 二叉树1 递归遍历 leetcode114&145&94
【代码】代码随想录第十四天 | 二叉树1 递归遍历 leetcode114&145&94。原创 2024-05-23 23:17:19 · 196 阅读 · 0 评论 -
代码随想录打卡第十三天 | 栈与队列 leetcode239&347
,每次需要弹出时弹出了最大元素,最后就保留不下来前K个高频元素了!代码使用大小为k的小顶堆,每次长度到k时弹出top(出现频率最小的);最后,因为小顶堆每次弹出最小,所以倒序保存在vector中!原创 2024-05-22 22:51:34 · 1327 阅读 · 0 评论 -
代码随想录打卡第十一天 | 栈与队列 leetcode20&1047&150(补周六)
1>计算s[i - 2] <运算符> s[i - 1]的值并保存在原来的i-2位置,i-1和i删除,即使用s[i-2]<运算符>s[i-1]的结果替换原来的s[i-2]s[i-1]s[i]这三个元素,并将i指针移动到i-2,因为用一个元素替换了原来的三个元素;用12 * -11 = -132替换"12" " -11" "*"得到{"10","6","-132","/","*","17","+","5","+"}6 / -132 = 0 替换得:{"10","0","*","17","+","5","+"}原创 2024-05-19 23:01:49 · 750 阅读 · 0 评论 -
代码随想录打卡第十天 | 栈与队列 leetcode232&225
4、pop时:q1前n-1个数据流入q2;q1.front()取出最后一个数据;q1.pop()将最后一个数据删除;将q2数据全部推回q1;3、top时:q1前n-1个数据流入q2;q1.front()取出最后一个数据;将最后一个数据流入q2;将q2数据全部推回q1;3、pop时,将s1倒入s2,s2.pop;再将s2剩余数据倒入s1;4、peek时,将s1倒入s2,s2.top;再将s2数据倒入s1;2、push时,q1.push(),数据存入q1;1、两个队列:q1和q2;1、两个栈:s1和s2;原创 2024-05-16 23:40:06 · 258 阅读 · 0 评论 -
代码随想录打卡第九天 | 字符串 leetcode28&459
(a)i++,继续去寻找字串,直到找到正确的sub或者遍历完成也没有找到合适的子串;= 0, 说明sub不可能是需要的字串,i++,继续寻找s[0] == s[i]的i,构造字串sub;a>全相等说明,s是由若干个sub构成的字符串;= sub,则:sub找的不对或者s不能有若干个字串构成;依次对比是否 == sub;3、初步使用长度检验sub是否正确:s.size()%sub.size() == 0。字符串的第一个匹配项的下标(下标从 0 开始)。1、遍历原始字符串s,寻找和s[0]相等的第一个元素;原创 2024-05-19 21:41:07 · 639 阅读 · 0 评论 -
代码随想录打卡第八天 | 字符串 leetcode344&541&151 卡码网54&55
原来字符串的前后带空格,你处理之后的不能带,比如:"the abc is good ", 你必须把good后面的‘ ’去掉,但是它也会出现"the abd is good", "the abc is good"," the abc is good ",各种情况,思路就是这样,但是写的时候有很多坑,都是必须自己一个个踩过去的。我写了一个多小时才通过。1、类似于双指针的方法,左指针指向0, 右指针指向s.size() - 1(最后一位)个,则将剩余字符全部反转。个字符,其余字符保持原样。原创 2024-05-16 00:13:53 · 465 阅读 · 0 评论 -
代码随想录打卡第七天 | 哈希表:leetcode-454&383&15&18(15、18没做出来,再研究研究。。)
2、哈希表中遍历查找ransom元素,找到则value-1,未找到则返回false;1、哈希表存储magazine所有元素,元素为key,次数为value;1、哈希表存储1、2数组的所有可能的和及重复和的个数(value);有点难,自己写了一个多小时还没写出来,下来再研究研究~~~找到:cnt += value;未找到:不处理,继续下一循环。应该和三数之和差不多的解法,不好写。原创 2024-05-14 23:16:39 · 501 阅读 · 0 评论 -
代码随想录打卡第六天 | 哈希表:leetcode-242&349&202&1(第五天周末休息)
从上面的例子可见,对于一个当前的数current,它的位数每升一个数量级,它的next肯定会有一个降级,因为*10之后肯定会有一个0存在;999....99(100个9) 81 * 100 = 8100 64 + 1 + 0 + 0 = 65。3、如果找到,将该元素保存至哈希表(要求输出为数组,但不能重复,所以先存在哈希表里去重);不存在:继续while循环,直到平方和为1(返回true)或者循环;2、遍历另一个数组,在哈希表中查找每个元素;原创 2024-05-13 22:51:40 · 971 阅读 · 0 评论 -
代码随想录打卡第四天 | leetocode24&19&142
所以:此时使用第三个指针ptr指向head, 慢指针slow和ptr同时移动每次移动一位,当ptr走a+b时,slow移动nc,正好再次相遇;好像不太对,我在研究研究。4、则vec[size - n -1]->next = vec[size - n]->next;此时慢指针走了a + b //a代表进入环之前的长度,b代表进入环之后的长度;3、使用vec的size和n计算出要删除的节点index = size - n;有: a+b = nc, 即:慢指针走的长度 == 环周长的n倍;原创 2024-05-11 23:34:52 · 1499 阅读 · 0 评论 -
代码随想录打卡第三天 | leetcode203&707&206
这个题之前我已经刷过了,正好可以偷个懒赶12点前睡觉,@呜呜呜@... 这是我当时提交的代码,上面是我当时自己写的,下面是当时看的力扣的答案,基本思路就是后指针指向前指针,最后返回尾节点,力扣的答案比我的实现写得好。今天自己花了近一小时写的代码本地验证可以实现基本插入删除这些功能,想写个双向链表,但发现有点复杂,leetcode编译不通过,需要排查(周末进行并分析原因),可见基础还是不牢;原创 2024-05-10 23:40:33 · 642 阅读 · 0 评论 -
代码随想录打卡第二天 | leetcode-977&209&59
sum = target和sum > target 的共同点:1、后移左指针;2、此时:left += 1, right = 2 sum = 3 + 2 == 5, 得到一个子数组{3,2};sum = target时:1、后移左指针;1、当left = 0, right = 2时, sum = 1 + 3 + 2 = 6 > 5。2、思考:什么时候移动左指针?答:sum < target时:1、后移右指针!平方后,数组变为 [16,1,0,9,100]排序后,数组变为 [0,1,9,16,100]原创 2024-05-10 00:33:01 · 640 阅读 · 1 评论 -
代码随想录打卡第一天 | leetcode-704&24
9 < 11 则: left = mid + 1 = 4 + 1 = 5 == right ->11 //此时left == right ->11。=val的,右指针后面的都是==val的,需要删除。3 < 11 则: left = mid + 1 = 2 + 1 = 3 ->5 //下标3指向5。第一次:mid = (0 + 5) / 2 = 2 -> 3 //下标2指向3。3、删除右指针指向的交换后的==val的元素,右指针前移;原创 2024-05-08 21:57:34 · 2206 阅读 · 0 评论