自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(61)
  • 收藏
  • 关注

原创 【每日一题】LeetCode 114. 二叉树展开为链表 TypeScript

【代码】【每日一题】LeetCode 114. 二叉树展开为链表 TypeScript。

2026-07-06 14:21:53 10

原创 【每日一题】LeetCode 199. 二叉树的右视图 TypeScript

想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。2.队列:先进先出,把前面的都出队。3.把最右边的结果加入数组中。1.把每一层都存进队列中。

2026-07-05 10:50:45 192

原创 【每日一题】LeetCode 230. 二叉搜索树中第 K 小的元素 TypeScript

二叉搜索树:是指满足 左节点>根节点>右节点 的二叉树。可以通过中序遍历,给二叉树“排序”,按升序遍历二叉树。第k个小的元素就是,“升序遍历”的第k个位置的值。,请你设计一个算法查找其中第。给定一个二叉搜索树的根节点。从 1 开始计数)。

2026-07-04 15:26:04 219

原创 【每日一题】LeetCode 98. 验证二叉搜索树 TypeScript

根节点的值是 5 ,但是右子节点的值是 4。-Infinity:负无穷大。Infiniry:正无穷大。,判断其是否是一个有效的二叉搜索树。给你一个二叉树的根节点。

2026-07-03 10:51:04 213

原创 【每日一题】LeetCode 153. 寻找旋转排序数组中的最小值 TypeScript

它原来是一个升序排列的数组,并按上述情形进行了多次旋转。请你找出并返回数组中的。原数组为 [0,1,2,4,5,6,7] ,旋转 4 次得到输入数组。原数组为 [11,13,15,17] ,旋转 4 次得到输入数组。原数组为 [1,2,3,4,5] ,旋转 3 次得到输入数组。的数组,预先按照升序排列,经由。你必须设计一个时间复杂度为。

2026-07-02 10:36:34 222

原创 【每日一题】LeetCode 33. 搜索旋转排序数组 TypeScript

首先来个错误版本:时间复杂度O(n),则返回它的下标,否则返回。你必须设计一个时间复杂度为。按升序排列,数组中的值。在预先未知的某个下标。上向左旋转后可能变为。

2026-07-01 19:32:06 185

原创 【每日一题】LeetCode 74. 搜索二维矩阵 TypeScript

行:中间值 / 列数 Math.floor向下取整。n x m矩阵数组 有 n x m个元素。2.计算中间值,找出矩阵的中间位置(left+right)/2。小了,左边界扩长至mid+1。左边界下标=0,右边界下标是所有元素-1。大了,右边界缩小至mid-1。列:中间值 % 列数。1.把二维数组“展开”成一维数组。3.根据位置找出所在行和列。4.比较中间值和目标值;给你一个满足下述两条属性的。核心思路:(二分查找法)

2026-06-30 17:54:29 247

原创 【每日一题】LeetCode 48. 旋转图像 TypeScript

旋转图像,这意味着你需要直接修改输入的二维矩阵。请你将图像顺时针旋转 90 度。解法一:先转置,后反转(执行用时1ms)解法二:先翻转,再转置(执行时长0ms)或手写反转函数reverse()使用另一个矩阵来旋转图像。

2026-06-29 14:01:38 206

原创 【每日一题】LeetCode 54. 螺旋矩阵 TypeScript

3.判断还有没有行:底部从右到左开始遍历;4.判断还有没有列:左侧从下到上开始遍历;1.顶部从左到右开始遍历;2.右侧从上到下开始遍历;,返回矩阵中的所有元素。

2026-06-28 16:24:05 172

原创 【每日一题】LeetCode 73. 矩阵置零 TypeScript

3.再次从第1行第1列开始遍历,如果所在行的第0列是0,就把对应行的所有列都置为0;存在所在列的第0行是0,就把对应列的所有行都置为0;2.从第1行第1列开始遍历每一项,如果===0,则把对应行的第0列置为0,把对应列的第0行置为0;第0行存在0,就把整个第0行都置为0;第0列存在0,就把整个第0列都置为0;4.最后根据标记,处理第0行和第0列。1.先标记第0行、第0列有没有0;,则将其所在行和列的所有元素都设为。的矩阵,如果一个元素为。

2026-06-27 14:21:41 209

原创 【每日一题】LeetCode 238. 除了自身以外数组的乘积 TypeScript

索引是1,它的乘积是左侧1,x 右侧3x4 (1X3x4)索引是2,它的乘积是左侧1x2,x 右侧4 (1x2X4)每一项的乘积(除了自身)等于左侧乘积 x 右侧乘积。之中任意元素的全部前缀元素和后缀的乘积都在。例如:[1,2,3,4]之外其余各元素的乘积。时间复杂度内完成此题。

2026-06-26 11:04:03 179 2

原创 【每日一题】LeetCode 189. 轮转数组 TypeScript

数组[1,2,3,4,5,6,7] k=10,轮转到7的时候就又是原来的数组了,实际再轮转3次。1.nums.splice(s):表示从数组的s索引(包含)开始删除剩下的元素并返回删除元素。为什么要取余数,因为轮转k的次数如果是数组的长度,则还是原来的数组,比如。②翻转前k-1的数据;4.[a,b]=[b,a]这个是快速替换a和b两个元素,等价于。3.k%=nl等价与k= k%nl。向右轮转 1 步: [99,-1,-100,3]向右轮转 2 步: [3,99,-1,-100],将数组中的元素向右轮转。

2026-06-25 14:21:40 166

原创 【每日一题】LeetCode 56. 合并区间 TypeScript

2.遍历比较,把结果数组的最后一项取出最后一位 与 原数组的第一位进行比较,大于等于即表示包含在原数组的数据范围,最后一项的最后一位取最大值。区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。区间 [1,4] 和 [4,5] 可被视为重叠区间。区间 [1,4] 和 [4,7] 可被视为重叠区间。1.先排序,按数组的第一个数进行排序。否则原样添加到结果数据末尾。表示若干个区间的集合,其中单个区间为。请你合并所有重叠的区间,并返回。

2026-06-24 11:12:16 190

原创 【每日一题】LeetCode 560. 和为 K 的子数组 TypeScript

子数组是数组中元素的连续非空序列。

2026-06-23 12:11:21 213

原创 【每日一题】LeetCode 438. 找到字符串中所有字母异位词 TypeScript

2.一个数组存放是模板子串,另一个是滑动的窗口,每移动一位就和模板子串做比较是否相等。1.建立两个数组,26的长度,索引分别对应26个字母,值对应的是每个字母出现的个数。起始索引等于 0 的子串是 "cba", 它是 "abc" 的异位词。起始索引等于 6 的子串是 "bac", 它是 "abc" 的异位词。起始索引等于 0 的子串是 "ab", 它是 "ab" 的异位词。起始索引等于 1 的子串是 "ba", 它是 "ab" 的异位词。起始索引等于 2 的子串是 "ab", 它是 "ab" 的异位词。

2026-06-22 16:09:08 188

原创 【每日一题】LeetCode 128. 最长连续序列 TypeScript

②判断每一个数是不是连续列表的第一个数(判断有没有前一个数),是第一个数的话,当前的序列是1,一直找有没有+1的数,返回当前的序列长度;否则不是第一个数,跳过(因为会继续判断,一定有更小的数,从更小的数开始),找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。最长数字连续序列是 [1, 2, 3, 4]。new Set(nums)请你设计并实现时间复杂度为。给定一个未排序的整数数组。

2026-06-21 14:14:50 156

原创 【每日一题】LeetCode 49. 字母异位词分组 TypeScript

如何获得哈希表里的所有value,并以数组的形式返回 Array.from(map.values())或[...map.values()]如何把字符串分割排序后合并 str.split('').sort().join('')给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。②同样字母组合的字符串作为键,不同的str作为值;①把每个字符串分割、排序、合并成字符串;

2026-06-20 22:27:38 264

原创 【每日一题】LeetCode 3. 无重复字符的最长子串 TypeScript

所以其长度为 3。注意 "bca" 和 "cab" 也是正确答案。,请你找出其中不含有重复字符的。请注意,你的答案必须是。因为无重复字符的最长子串是。因为无重复字符的最长子串是。因为无重复字符的最长子串是。,所以其长度为 1。,所以其长度为 3。

2026-06-19 16:16:43 34

原创 【每日一题】LeetCode 169. 多数元素 TypeScript

for(const num in nums)遍历nums每一个索引,num输出字符型:"0"、"1"、"2"、"3"、"4"for(const per in person) 遍历nums的每一个键,per输出”name"、"age"for(const num of nums) 遍历nums每一个元素,num输出数字型:2,3,1,2,1。不推荐用for..in ..遍历数组,会遍历到数组的原型链上的属性。你可以假设数组是非空的,并且给定的数组总是存在多数元素。,返回其中的多数元素。

2026-06-18 10:28:02 236

原创 【每日一题】LeetCode 102. 二叉树的层序遍历 TypeScript

(即逐层地,从左到右访问所有节点)。

2026-06-17 11:14:52 203

原创 【每日一题】LeetCode 146. LRU 缓存 TypeScript

Map里有该key,保存原来的value值,删掉原来的key键值对,再重新set把键值对存进Map,这里是让Map给set重新记录顺序。这是用内置的数据结构Map实现的,核心在于.set()方法可以记住插入的顺序,可以获取最早插入的元素。// 该操作会使得关键字 2 作废,缓存是 {1=1, 3=3}// 该操作会使得关键字 1 作废,缓存是 {4=4, 3=3}// 缓存是 {1=1, 2=2}// 返回 -1 (未找到)// 返回 -1 (未找到)lRUCache.put(1, 1);

2026-06-16 15:00:42 245

原创 【每日一题】LeetCode 148. 排序链表 TypeScript

1.找出中心节点,分成两段链表。2.将两段链表进行升序排序。

2026-06-15 12:02:46 276

原创 【每日一题】LeetCode 138. 随机链表的复制 TypeScript

因为如果走一步复制一步,random指向不确定,可能是未来节点、可能是过去节点,需要更复杂的处理。新节点就查【旧节点的next =链表里的其中一个节点】一一找到那个节点并指向它。有,指向 【旧节点的next =链表里的其中一个节点】指针也都应指向复制链表中的新节点,并使原链表和复制链表中的这些指针能够表示相同的链表状态。新节点的next也要指向链表的任一节点,和旧节点一样。旧节点的next指向链表的任一的节点。节点组成,其中每个新节点的值都设为其对应的原节点的值。,该指针可以指向链表中的任何节点或空节点。

2026-06-14 11:50:22 212

原创 【每日一题】LeetCode 24. 两两交换链表中的节点 TypeScript

给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。

2026-06-13 11:47:41 174

原创 【每日一题】LeetCode 19. 删除链表的倒数第 N 个结点 TypeScript

给你一个链表,删除链表的倒数第。个结点,并且返回链表的头结点。

2026-06-12 10:28:04 475

原创 【每日一题】LeetCode 142. 环形链表 II TypeScript

指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数。如果链表中有某个节点,可以通过连续跟踪。链表中有一个环,其尾部连接到第二个节点。链表中有一个环,其尾部连接到第一个节点。,返回链表开始入环的第一个节点。来表示链表尾连接到链表中的位置(,仅仅是为了标识链表的实际情况。返回索引为 1 的链表节点。返回索引为 0 的链表节点。给定一个链表的头节点。如果链表无环,则返回。,则在该链表中没有环。

2026-06-11 11:27:53 241

原创 【每日一题】LeetCode 53. 最大子数组和 TypeScript

这个为什么不用forEach,因为先初始化了nums[0],下标0不参与比较。forEach是从0开始遍历整个数组。,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。连续子数组 [4,-1,2,1] 的和最大,为 6。是数组中的一个连续部分。

2026-06-10 12:08:04 239

原创 【每日一题】LeetCode 15. 三数之和 TypeScript

使重复的值相邻,可以更好地跳过:数组.sort((a,b)=>a-b) 从小到大,升序。如果用暴力解法,三层循环时间复杂度是O(n³),这个算法的目的就是降低时间复杂度+去重。②去重:如果下一个值和上一个值相同,直接跳过,i++/j++/z++不同的三元组是 [-1,0,1] 和 [-1,-1,2]。注意,输出的顺序和三元组的顺序并不重要。答案中不可以包含重复的三元组。唯一可能的三元组和不为 0。唯一可能的三元组和为 0。共勉,祝天下考生旗开得胜!,判断是否存在三元组。

2026-06-09 12:00:42 178

原创 【每日一题】LeetCode 11. 盛最多水的容器 TypeScript

图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。核心思想是,从下标0开始遍历,计算0,1;0,3分别计算出面积,取最大值。最后,在我的不懈努力下,终于拿下~ (它有名字,双指针贪心算法)OK,Fine~还记得我之前说的力扣官方题解吗?首先给大家演示一下暴力解法(不推荐,超时)轴共同构成的容器可以容纳最多的水。共勉,祝愿各位高考考生旗开得胜!找出其中的两条线,使得它们与。返回容器可以储存的最大水量。当我掏出豆包时,恰逢高考。

2026-06-08 11:42:53 160

原创 【每日一题】LeetCode 2. 两数相加 TypeScript

你可以假设除了数字 0 之外,这两个数都不会以 0 开头。的链表,表示两个非负的整数。它们每位数字都是按照。请你将两个数相加,并以相同形式返回一个表示和的链表。的方式存储的,并且每个节点只能存储。

2026-06-07 10:51:21 198

原创 【每日一题】LeetCode 108. 将有序数组转换为二叉搜索树 TypeScript

1,null,3] 和 [3,1] 都是高度平衡二叉搜索树。排列,请你将其转换为一棵 平衡 二叉搜索树。

2026-06-06 22:43:52 258

原创 【每日一题】LeetCode 118. 杨辉三角 TypeScript

中,每个数是它左上方和右上方的数的和。生成「杨辉三角」的前 numRows。给定一个非负整数 numRows。

2026-06-05 23:08:41 44

原创 【每日一题】LeetCode 70. 爬楼梯 TypeScript

豆包给的缺点:递归重复计算,性能很差,反复计算f(3)和f(2)先给大家演示一个错误写法,这个到了45就卡住了,超时。你有多少种不同的方法可以爬到楼顶呢?斐波那契数列:fn=f(n-2)+f(n-1)1. 1 阶 + 1 阶 + 1 阶。有两种方法可以爬到楼顶。1. 1 阶 + 1 阶。有三种方法可以爬到楼顶。2. 1 阶 + 2 阶。3. 2 阶 + 1 阶。

2026-06-04 22:24:50 168

原创 【每日一题】LeetCode 136. 只出现一次的数字 TypeScript

这道题相信大家都有自己的解法,或过滤或添加新数组,建议大家都用异或运算。,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。

2026-06-03 22:58:31 154

原创 【每日一题】LeetCode 121. 买卖股票的最佳时机 TypeScript

在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5。注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不能在买入前卖出股票。还有原因是n只能从第0项开始遍历,本题初始已经是第0项,不需要比较。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回。因为n是字符串,得到的是“1”、“2”....设计一个算法来计算你所能获取的最大利润。在这种情况下, 没有交易完成, 所以最大利润为 0。

2026-06-02 22:22:28 187

原创 【每日一题】LeetCode 20. 有效的括号 TypeScript

5.Object.hasOwn(参数1,参数2) :返回boolean值,如果参数2的值在参数1的keys里面,返回true,否则返回false。3.映射关系,Record<K,T> TS定义类型的语法糖 (推荐写法,简洁)6. 数组.push(元素):往数组的末尾增加一位元素,返回数组的长度;数组.pop():从数组的末尾删除一位元素,返回被删除的元素。因为in会在对象、对象的父级/原型链找是否存在,标识key的类型是K,value的类型是T。const char of s这是新写法,学会拥抱新方法~

2026-06-02 00:44:33 163

原创 【每日一题】LeetCode 543. 二叉树的直径 TypeScript

3 ,取路径 [4,2,1,3] 或 [5,2,1,3] 的长度。这条路径可能经过也可能不经过根节点。是指树中任意两个节点之间最长路径的。给你一棵二叉树的根节点,返回该树的。由它们之间边数表示。

2026-05-31 21:38:51 169

原创 【每日一题】LeetCode 101. 对称二叉树 TypeScript

给你一个二叉树的根节点。, 检查它是否轴对称。

2026-05-30 22:03:30 189

原创 【每日一题】LeetCode 226. 翻转二叉树TypeScript

翻转这棵二叉树,并返回其根节点。给你一棵二叉树的根节点。

2026-05-29 22:14:24 159

原创 【每日一题】LeetCode 104. 二叉树的最大深度TypeScript

rightDepth = maxDepth(root.right) //root.right是null。rightDepth = maxDepth(root.right) //root.right是null。leftDepth = maxDepth(root.left) //root.left是null。leftDepth = maxDepth(root.left) //root.left是null。rightDepth = maxDepth(root.right) //root.right是null。

2026-05-28 22:35:16 204

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除