- 博客(10)
- 收藏
- 关注
原创 leethot 100:环形链表 II
当相遇时,假设慢指针走了s 那么快指针走了f = s + nb,f=2s,因此s = nb,即慢指针走了n个环的距离,进入节点的距离可以表示为a+nb,而现在slow刚好走了n步,因此再走a就可以了。head从头开始走a,slow走a刚好相遇,因此让head和slow一起走就可以了。首先,环状链表一般都是双指针的做法,我们首先定义fast和slow两个指针指向头节点,如果链表中有环,fast和slow一定会相遇,我们现在考虑相遇的情况。假设入口左边(不包含入口)有a个节点,环有b个。
2024-03-07 17:35:33 197
原创 leethot100 前缀和:238 除自身以外数组的乘积
所以这道题是一个前缀和的应用,通过题意不难想到,我们某个数前面所有数的乘积以及后面所有数的乘积,因此我们可以通过计算前缀🐔和后缀🐔,之后相乘来求得最终的结果。题目明确说了不可以使用除法解决,如果可以使用的话,我们只需要遍历所有元素得到乘积,然后除以相应的下标元素就可以了(但是要注意此时数组中存在0这种方法会失效)。
2024-02-26 14:58:12 150 1
原创 leethot100 滑动窗口 找到字符串中所有字母的异位词
这道题和hash分组中异位词分组感觉很像,唯一的区别就是我们要找到所有满足p的异位词在s中的起始下标。
2024-02-22 16:39:35 373 1
原创 leetcode hot100 双指针:盛水最多的容器
首先我们要想到计算水的体积应该是:两侧高度较低的一段 * 两端的坐标差。有了这一点,我们就可以判断,当两侧一高一低时,我们移动较高的一侧的指针是没有意义的,因为较低的一端决定了容器的最高高度,移动后两端点的差值也会变小,体积只可能是小于等于。因此,我们只需要移动每次两端点中较低的一端,去寻找下一个可能大于另一端点的高度,才有可能使容器的容积变大。因此,要想一种时间复杂度低于n2的方法,通常来说,双层遍历我们应该第一时间就会想到双指针的方法,用某一个指针的移动来避免一些无用的重复遍历。
2024-02-20 10:32:23 411 1
原创 leetcode hot100 hash 1 两数之和
其实这道题很简单,算是我们刷leetcode的helloword了,但是为什么会拿出来单独记录一下呢,因为我之前是使用python2刷题的,最近换到了python3刷hot100时想着把以前刷过的题快速过一下,发现之前的解法在python3突然报错了,所以特此记录一下。
2024-02-19 14:39:52 169
原创 leetcode hot100 hash第二题 字母异位词分组
思路一:通过遍历给出的链表集合,对每一个单词进行字典排序,即可判断该单词是否由相同字母异位构成,这里贴出两种做法,一种使用python内置的sort函数,另一种顺便复习一下快速排序的写法。思路二:通过对字母进行encode编码,将每一个字符映射到26位字母表上,有相同数量的字母即为异位单词。
2024-02-19 11:19:09 126 1
原创 leetcode 817. 链表组件
这道题我一开始是想用hash去做的,但是纠结于nums中元素的顺序,没有想到按顺序进行遍历。于是参考题解之后又在过了一段时间后二刷,不得不说,二刷确实是有收获的,当时我理解的为什么要在开头取一个set,是因为有一次周赛的题,数组里给了重复元素,按题面的意思是不可能出现的,这点就很坑,我当时以为的是去重,就没有再深究。
2022-10-12 14:47:16 163
原创 leetcode 168:Excel的表列名称
这道题总的来说还是比较好的,需要巧妙的转换一下26进制的规则。切勿眼高手低,尤其是像我一样的小白,一定要认真做好每一题,反思自己,让自己越来越好~
2022-10-11 23:31:14 122 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人