热题100
文章平均质量分 69
Leetcode热题100收录题目
Noric!
这个作者很懒,什么都没留下…
展开
-
141 环形链表
存在环的条件下,如何证明两指针一定会享相遇呢?最容易想到的方法,就是遍历链表同时用哈希表。但能不能更进一步优化空间复杂度到。如果链表不存在环,则。为所有自然数,所以一定能够到达。遇到重复节点则认为存在环,返回。这种方法简单直接,时间复杂度。会在环中绕圈,直到某一时刻与。,则链表中不存在环,返回。- 为链表中环的长度。借用双指针的思路,用。每次前进1步,快指针。原创 2023-12-12 22:29:24 · 79 阅读 · 0 评论 -
234 回文链表
由于链表的结构特点,访问链表中的元素的时间复杂度为O(n)。相比较而言,使用数组会方便很多,实现O(1)访问。所以这个题,可以先遍历一遍把数值存到数组中,再使用双指针判断是否是回文。原创 2023-12-05 22:22:57 · 124 阅读 · 0 评论 -
206 反转链表
用于重复将当前节点添加到链表末尾,被函数各层调用使用,一开始的思路是,是用全局变量去存储链表末尾,并在每次操作后不断更新。:通过函数调用其自身,完成目标。另外需要注意的点,由于每次操作是重复的,如果仅仅改变指针的指向会导致反转后的链表未能指向。现在,函数递归到节点2,如何找到翻转链表的末尾?思路大致相同,但是能否优化无需使用全局变量来存储链表末尾?,用于题目输出,只能作为递归函数的返回值传递。,因此在每一步操作中,需额外将反转链表末尾指向。2)目标拆解后,函数每一步需要。,作为翻转后链表的表头。原创 2023-12-04 21:54:49 · 109 阅读 · 0 评论 -
160 相交链表
相交,则它们之间的区别就仅在于相交节点之前的部分(其实任意两个链表最终都会相交,最坏相交于NULL节点)。这个思路虽然可行,但略显繁琐。对于不同的情况需要分类讨论,因而导致代码写起来非常复杂。如果在相交前,到达了链表末尾,则下一节点将是另一条链表的起始节点。3、较长的链表经过差值处理后,遍历两链表检查是否存在相交点。的距离相等,指针能同时到达。这种交叉遍历的方式,巧妙兼容了。,若两链表不相交,两指针最终一定会同时到达。两个链表,直到它们遇到相交节点(1、找到两个链表较长的那个;,若相交,相交节点到。原创 2023-11-27 22:01:56 · 119 阅读 · 0 评论 -
283 移动零
这个思路虽然可行,但实现代码仍有些繁琐,需要同时移动两个指针,并且考虑两个指针的范围问题。要创造自己一个假设,并在每一步都要做与假设一致的操作,维持假设成立,最后将假设变成“现实”。:假设以其为分界点,左边均为非零元素,右边均为0元素;:不断向右探索的指针,直至遍历到数组最后一个元素停止。右移1,以保证假设成立。若数组中无0元素,在移动过程中。若任意一个指针到达数组末尾时停止。,找到第一个非零元素时交换二者的值;每次仅移动一次指针(很多算法题的解题思路,都与。右边第一个非零元素坐标。始终指向第一个0元素。原创 2023-10-15 22:47:08 · 462 阅读 · 0 评论 -
1 两数之和
map & unordered_map原创 2023-10-15 00:38:47 · 167 阅读 · 0 评论