
LeetCode
文章平均质量分 90
Super XX.
这个作者很懒,什么都没留下…
展开
-
二叉树 - JS - 2
在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24。 来遍历所有可能的路径。,返回所有从根节点到叶子节点的路径。给你一个二叉树的根节点。是指没有子节点的节点。,返回所有左叶子之和。原创 2025-05-03 21:52:19 · 426 阅读 · 0 评论 -
二叉树-JS
遍历类型顺序核心逻辑差异迭代实现关键点前序根 → 左 → 右访问顺序:弹出即记录右子节点先入栈中序左 → 根 → 右访问顺序:弹出左叶子节点后记录用current指针遍历到最左节点后序左 → 右 → 根访问顺序:逆序存储(unshift左子节点先入栈方法作用返回值是否修改原数组unshift在开头添加元素新长度是shift移除开头的第一个元素被移除的元素或undefined是。原创 2025-04-15 11:38:22 · 980 阅读 · 0 评论 -
栈与队列-JS
给定一个只包括'('')''{''}''['']'的字符串s,判断字符串是否有效。原创 2025-04-11 11:19:43 · 783 阅读 · 0 评论 -
字符串-JS
给定一个字符串 s,它包含小写字母和数字字符,请编写一个函数,将字符串中的字母字符保持不变,而将每个数字字符替换为number。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。例如,对于输入字符串 "a1b2c3",函数应该将其转换为 "anumberbnumbercnumber"。如果两个单词间有多余的空格,反转后的字符串需要将单词间的空格减少到仅有一个。但显然不是让用这个。直接在原地对字符串进行交换,需要注意,下面这种交换函数是错的。反转后的字符串中不能存在前导空格和尾随空格。原创 2025-04-04 21:01:43 · 861 阅读 · 0 评论 -
哈希表 - N数之和(Map、数组) - JS
map在 JavaScript 中,mapmap()原创 2025-03-31 18:34:38 · 652 阅读 · 0 评论 -
哈希表 - 两个数组的交集(集合、数组) - JS
在 JavaScript 中,Set是一种数据结构,用于存储(不允许重复),并且可以高效地进行等操作。它类似于数组(Array),但成员的值都是唯一的,没有重复项。原创 2025-03-30 13:56:47 · 461 阅读 · 0 评论 -
哈希表 - 基础+字母异位词(数组) - JS
Array:适用于存储有序数据,查询和增删效率较低。Set:类似于C++的,无序,不允许重复。Map:类似于C++的,无序,键值对存储,键可以是任意类型。Object:键值对存储,键必须是字符串或符号,查询效率不如Map。JavaScript没有类似C++std::set这种基于红黑树的有序集合,但可以使用来实现排序。在实际开发中,如果需要高效的键值映射,优先使用Map而不是Object;如果需要存储唯一值的集合,使用Set;如果数据有序且需要索引访问,则使用Array。原创 2025-03-28 11:13:53 · 948 阅读 · 0 评论 -
链表题型-链表操作-JS
一定要注意链表现在的头节点是空节点还是有值的节点。原创 2025-03-22 22:20:07 · 664 阅读 · 0 评论 -
数组题型-滑动窗口-JS
所谓滑动窗口,。窗口就是 满足其和 ≥ s 的长度最小的 连续 子数组。窗口的起始位置如何移动:如果当前窗口的值大于等于s了,窗口就要向前移动了(也就是该缩小了)。窗口的结束位置如何移动:窗口的结束位置就是遍历数组的指针,也就是for循环里的索引。解题的关键在于 窗口的起始位置如何移动,如图所示:可以发现已解答中等相关标签相关企业给定一个含有n个正整数的数组和一个正整数target找出该数组中满足其总和大于等于target的长度最小的,并返回其长度如果不存在符合条件的子数组,返回0。2。原创 2025-03-21 11:06:11 · 518 阅读 · 0 评论 -
数组题型-快慢指针-JS
基础知识:移除元素其实就是双数组变成单数组,相当于快慢指针(双指针)。双指针法(快慢指针法):快指针:寻找新数组的元素 ,新数组就是不含有⽬标元素的数组慢指针:指向更新 新数组下标的位置27.移除元素26.删除排序数组中的重复项283.移动零844.⽐较含退格的字符串977.有序数组的平⽅。原创 2025-03-18 23:27:09 · 944 阅读 · 0 评论 -
数组题型-二分查找-JS
但left指向的是第一个大于目标值的位置,因此把元素放入left现在的位置就可以。小技巧:在循环结束时,left 和 right 的值已经交叉,left 指向第一个大于目标值的位置,right 指向最后一个小于目标值的位置。在循环结束时,left 和 right 的值已经交叉,left 指向第一个大于目标值的位置,right 指向最后一个小于目标值的位置。在循环结束时,left 和 right 的值已经交叉,left 指向第一个大于目标值的位置,right 指向最后一个小于目标值的位置。原创 2025-03-17 22:57:09 · 915 阅读 · 0 评论 -
leetcode-数组-双指针
处理最高位进位 :如果最高位也需要进位(例如 [9,9] 加一后变为 [1,0,0] ),则需要在数组的最前面插入 1。== val ,则将 nums[j] 放到 nums[i] 的位置,并移动慢指针 i。这道题的目标是对一个用数组表示的非负整数加一,并返回结果数组。数组的每个元素表示数字的一位,最高位在数组的首位。你的函数应该返回 k = 5,并且 nums 中的前五个元素为 0,0,1,3,4。// 长度正确的预期答案。// 排序 nums 的前 k 个元素。原创 2025-03-08 22:33:12 · 572 阅读 · 0 评论 -
0302leetcode-1672.最富有客户的资产总量、1275找出井字棋的获胜者、1572.矩阵对角线元素之和
给你一个m x n的整数网格accounts,其中是第位客户在第j家银行托管的资产数量。返回最富有客户所拥有的。客户的就是他们在各家银行托管的资产数量之和。最富有客户就是最大的客户。6两位客户都是最富有的,资产总量都是 6 ,所以返回 6。10= 6= 10= 8第 2 位客户是最富有的,资产总量是 1017。原创 2025-03-02 11:21:22 · 1030 阅读 · 0 评论 -
0225-leetcode - 66.加一、1822数组元素积的符号、1502判断能否形成等差数列
给定一个由组成的数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储数字。你可以假设除了整数 0 之外,这个整数不会以零开头。[1,2,4]输入数组表示数字 123。[4,3,2,2]输入数组表示数字 4321。[1,0]输入数组表示数字 9。加 1 得到了 9 + 1 = 10。因此,结果应该是 [1,0]。转为字符串,把字符串转为数字再加一,再把数字拆分为数组。这种思路虽然比较简单,但是存在一些问题。原创 2025-02-25 09:18:26 · 589 阅读 · 0 评论 -
0224-leetcode-459.重复的子字符串、283. 移动零
给定一个非空的字符串s,检查是否可以通过由它的一个子串重复多次构成。s = "abab"true可由子串 "ab" 重复两次构成。s = "aba"falsetrue可由子串 "abc" 重复四次构成。(或子串 "abcabc" 重复两次构成。原创 2025-02-24 13:31:18 · 484 阅读 · 0 评论 -
0301 leetcode - 1502.判断是否能形成等差数列、 682.棒球比赛、657.机器人能否返回原点
给你一个数字数组arr。如果一个数列中,任意相邻两项的差总等于同一个常数,那么这个数列就称为。如果可以重新排列数组形成等差数列,请返回true;否则,返回false。true对数组重新排序得到 [1,3,5] 或者 [5,3,1] ,任意相邻两项的差分别为 2 或 -2 ,可以形成等差数列。false无法通过重新排序得到等差数列。原创 2025-03-01 13:42:18 · 938 阅读 · 0 评论 -
0223-leetcode-28.找出字符串中第一个匹配项的下标、243.有效的字母异位词
给你两个字符串haystack和needle,请你在haystack字符串中找出needle字符串的第一个匹配项的下标(下标从 0 开始)。如果needle不是haystack的一部分,则返回-1。0"sad" 在下标 0 和 6 处匹配。第一个匹配项的下标是 0 ,所以返回 0。-1"leeto" 没有在 "leetcode" 中出现,所以返回 -1。needle。原创 2025-02-23 10:08:21 · 464 阅读 · 0 评论 -
0222-leetcode-1768.交替合并字符串、389找不同、
如果前面s个长度的字符串都相同,那多出来的字符就是那个多余的字符串。把字符串拆分是s.split(''),排序是sort(),将字符连接起来成字符串是.join('');如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾。,这是将 “hello” 字符串中的字符按照 Unicode 编码顺序排序后的结果。循环语法来遍历字符串中的每个字符。字符串可以看成数组,每个字符对应数组中的一个元素,这样就可以进行字符相加的操作。是一个链式调用,它包含三个不同的字符串方法,每个方法都对字符串。原创 2025-02-22 23:00:44 · 1031 阅读 · 0 评论 -
Leetcode day1.两数相加(2) 2.整数反转(7)
是一个哑节点,它的下一个节点才是真正的结果链表的头节点。因为l3这个位置没有给值,第一个有值的是l3.next;l3.val是null。很像队列的性质,先进先出,逐步计算。但是最后要换成链表样式。注意点:1.链表会出现其中一个已经为空,另一个缺还是有数据。解法一、 利用队列的性质(基础不好 第一时间想到的)注意,在返回结果时,应该返回。用栈就可以了 先进后出实现倒叙。解法二、链表相加(比较好)2.相加时会出现进位操作。原创 2024-12-05 21:55:08 · 208 阅读 · 0 评论