cody1991

记录下来,变成自己的东西

[置顶] 生活清单

始于 2020 年 12 月 27 号 2021 年 电影 在看 想看 看完 电视剧 看完 想见你...

LeetCode 19. 删除链表的倒数第N个节点

简单思路:快慢指针,第一个先往前走,然后两个指针齐步走,快指针到末尾的时候,满指针指向了要删除的元素,我们还保存了删除元素的前一个元素的指针,这个时候 pre.next = pre.next.next 就可以删除了 19. 删除链表的倒数第 N 个节点 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26...

LeetCode 15. 三数之和

简单思路:循环抽出一个数字作为基数(如果和之前的数组已一样,跳过),然后有两个指针从前往后和从后往前遍历,如果得出的结果小于 0,左边的指针 + 1;如果得出的结果大于 0 ,右边的指针 - 1;相等则 push 进我们的 res 数组,并且一直 left++ 和 right– 直到和上次的数字不同,循环上面的步骤 15. 三数之和 1 2 3 4 5 6 7 8 9 10 11 12 ...

LeetCode 141. 环形链表

简单思路:这题其实也很简单,一个快慢指针然后看是否有相同的情况。(另外 js 也可以用 JSON.stringify 来判断是否有环形,也可以标记每个指针,如果遍历过加个 flag ,下次再遍历到的话就是环形的) 141. 环形链表 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 /** *...

LeetCode 1. 两数之和

简单思路:很简单,记录一个 map,遍历数组,查看 target - cur 是否存在 map 中,再查看两个下标是否一致,就可以得出结果了 1. 两数之和 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 /** * @param {number[]} nums * @param {number} targ...

LeetCode 66. 加一

简单思路:就是简单的加法运算,另外也可以先把数组变成数字 + 1 以后变回数组,但是会有测试用例的报错,主要是大数字的问题,改成用 BigInt 可以解决(不太推荐) 66. 加一 1 2 3 4 5 var plusOne = function (digits) { return (BigInt(digits.join("")) + 1n).toString().split("")...

LeetCode 350. 两个数组的交集 II

简单思路:先遍历第一个数组,使用 map 记录出现的数字和次数,然后遍历第二个数组,当存在相同数字的时候把对应的 map 上的次数 - 1,推入到结果数组中,就是我们需要的答案了 350. 两个数组的交集 II 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 /** * @param {number[]} n...

LeetCode 27. 移除元素

简单思路:for 循环不使用第三个表达式,我们在找到需要去掉的值的时候去掉,否则遍历的 index++ 27. 移除元素 1 2 3 4 5 6 7 8 9 10 11 12 13 14 /** * @param {number[]} nums * @param {number} val * @return {number} */ var removeElement = func...

LeetCode 26. 删除排序数组中的重复项

简单思路:这里的 count 代表的是结果数组的当前长度。遍历整个数组,如果我们发现 count 指向的数字和当前遍历的数字不相同的时候,就把当前遍历的数字赋值给 count 的下一个位置 26. 删除排序数组中的重复项 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 /** * @param {number[]} nums * @re...

LeetCode 189. 旋转数组

思路:观察反转后的数组就好了,发现只要把 k 位置后面的移到数组头部就完成了(这个需要注意的是 k 可能比数组长,所以做一下取余),当然还有其他的方法 189. 旋转数组 1 2 3 4 5 6 7 8 9 10 11 12 /** * @param {number[]} nums * @param {number} k * @return {void} Do not return...

LeetCode 14. 最长公共前缀

思路:每次对比两个字符串,因为找的是最长公共前缀,我们通过 长字符.indexOf(短字符),看返回的结果是不是 0,如果不是的话,我们去掉短字符最后一个字符继续比较,最终获取到最长公共前缀,或者返回 ‘‘(代表无公共前缀) 14. 最长公共前缀 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27...