![](https://img-blog.csdnimg.cn/direct/760747f1e2064bffa5ac97aebe8c154e.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
刷题记录
力扣、洛谷
october_ocean
奋斗三年,归来仍是菜鸟
展开
-
leetcode 链表
指针A遍历完headA之后遍历headB,a+(b-c);同理,指针B走过 b+(a-c)。易知a+(b-c)=b+(a-c),并且之后一起指向相同部分(或者空)6.交叉链表,两条可能有重叠的链表找交汇节点。要求时间复杂度O(n) 空间复杂度O(1)。主要是链表的基本操作,不懂就记住吧。写在最后:感觉链表就是瞎子,训练指针用法吧(虽然python弱化了指针的概念)4.反向找特定节点,用双指针。一开始想用count计算位置,挺好实现的。3.翻转链表,初始化比较不一样,翻转过程注意暂存。原创 2023-11-11 13:46:56 · 29 阅读 · 1 评论 -
leetcode字符串
1.不适用库函数的字符串转整数。要有符号位的判定:有无?使用ord() 用ascii编码差返回数字,循环添加数字时使用累乘累加的方法,而不是int(str)。图解算法和数据结构部分题目。原创 2023-11-16 19:10:28 · 33 阅读 · 1 评论 -
leetcode 数组和字符串
1.合并区间,用一个新的二维数组merged存结果,如果merged为空或区间没有重叠(merged最后一个元素的右边界<intervals元素们的左边界)就加入结果集,否则更新merged最后一个元素的边界。总之是分类(向上遍历、向下遍历)找规律;从对角线第一个元素入手,再分类讨论在第一行/列和不在第一列的第一个元素的位置。4.找最大前缀,可以用横向比较和纵向比较。此处为纵向比较,第一个字符串与其他字符串一一比较字符,直到比到有不同的字符跳出循环,返回位置。(是简单题又怎样,还是不会。原创 2023-11-08 19:16:21 · 35 阅读 · 1 评论 -
leetcode 数组
3. 求除了i之外的乘积。我用除法算,先求全部的乘积,然后每位除array[i],遇到0时先把0替换为1然后累乘,耗时。1.分开奇偶数,使得数组中前面部分为奇数后面为偶数。使用类似与快速排序的思想,用两个指针分别从前面找偶数和后面找奇数,找到则对换。4.返回任意一个重复值。最先想到用数组存,耗时。5.螺旋遍历二维数组,规定上下左右边界来循环,每遍历完一行/列缩减范围。2.找一组连续的数相加得目标数。图解算法数据结构部分题目。原创 2023-11-13 09:34:00 · 25 阅读 · 0 评论 -
leetcode栈和队列
思路明明正确但提交了好多次,,错在push判断条件上写错了,or左右两边的条件不能随便对调,有顺序的。用暴力可以求,用指针指向窗口的最后一个元素,用两重循环(一重移动窗口,一重建立窗口列表用于找最大值)返回每次查找的窗口最大值。4.自动结算机,用队列实现一系列队列的操作(找最大值,加入队尾,移出队首),要求O(1)。用一个双端队列来存一个升序队列:遇到小的数加入队尾,遇到大的数弹出队尾,并加上大的数。注意循环的安放,用for来控制进栈,内置while判断出栈,每出栈一次,计数 i +1。原创 2023-11-19 14:16:41 · 39 阅读 · 1 评论