自定义博客皮肤VIP专享

    *博客头图:

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

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

    博客底图:

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

    栏目图:

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

    主标题颜色:

    RGB颜色,例如:#AFAFAF

    Hover:

    RGB颜色,例如:#AFAFAF

    副标题颜色:

    RGB颜色,例如:#AFAFAF

    自定义博客皮肤

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

    原创 LeetCode 104.二叉树的最大深度(js)

    (3)递归结束的条件(求最大深度 结束条件肯定是叶子节点)及要做的事。是指从根节点到最远叶子节点的最长路径上的节点数。(2)确定递归函数所需传递的参数。(4)中间递归层要做的操作。

    2025-02-19 21:18:40 306

    原创 LeetCode 129.求根节点到叶节点数字之和(JS)

    因此,数字总和 = 495 + 491 + 40 =因此,数字总和 = 12 + 13 =(3)确定每一层递归需要做的事情。,树中每个节点都存放有一个。计算从根节点到叶节点生成的。(1)确定递归要传递的参数值。给你一个二叉树的根节点。是指没有子节点的节点。(2)确定递归的终止条件。

    2025-02-19 19:53:01 242

    原创 数组中每个元素替换为除自身以外的其他元素之积 js

    一个小算法,传入一个数组,返回一个数组。数组中每个元素替换为除自身以外的其他元素之积(要求O(n)解决)。

    2025-02-08 21:26:41 103

    原创 LeetCode 21.合并两个有序列表

    【代码】LeetCode 21.合并两个有序列表。

    2025-02-08 12:31:41 155

    原创 LeetCode 141.环形链表

    快、慢指针,从头节点出发,慢指针每次走一步,快指针每次走两步,不断比较它们指向的节点的值,如果节点值相同,说明有环。类似 “追及问题”,两个人在环形跑道上赛跑,同一个起点出发,一个跑得快一个跑得慢,在某一时刻,跑得快的必定会追上跑得慢的,只要是跑道是环形的,不是环形就肯定追不上。利用到了map对象的唯一性,注意这里存储进map的元素是一个链表节点,本质是一个实例对象(存储的是此实例对象的地址),不是单纯的值,所以是唯一的。链表中有一个环,其尾部连接到第二个节点。链表中有一个环,其尾部连接到第一个节点。

    2025-02-03 14:26:54 741

    原创 LeetCode 112.路径总和(js)

    不存在 sum = 5 的根节点到叶子节点的路径。由于树是空的,所以不存在根节点到叶子节点的路径。的路径,这条路径上所有节点值相加等于目标和。等于目标和的根节点到叶节点路径如上图所示。(1 --> 2): 和为 3。(1 --> 3): 和为 4。和一个表示目标和的整数。是指没有子节点的节点。

    2025-02-01 14:28:19 185

    原创 LeetCode 15.三数之和(js)

    因为原数组是杂乱无章的,若我们强行遍历势必非常繁杂,重复率很高,所以先将原数组从小到大排序,然后由i指向当前遍历到的item项,start首先指向i+1(小边),end指向length-1(大边),因为是排好了顺序的,所以当三数和大于零,则把end左移,让和变小,若三叔和小于零,则把start右移,让和变大。例:[20, 3, 5, 1] 默认排序后可能变为 [1, 20, 3, 5],因为 ‘20’ 的Unicode位点在 ‘3’ 之前。不同的三元组是 [-1,0,1] 和 [-1,-1,2]。

    2025-02-01 12:34:04 269

    原创 LeetCode 226.翻转二叉树

    思路:递归函数+解构赋值交换左右节点位置。,翻转这棵二叉树,并返回其根节点。给你一棵二叉树的根节点。

    2025-01-28 13:20:59 236

    原创 LeetCode 100.相同的树 (js)

    思路:分类讨论(节点为Null?)+ 设计递归函数(递归左、右节点)如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。,编写一个函数来检验这两棵树是否相同。给你两棵二叉树的根节点。

    2025-01-28 13:18:00 240

    原创 LeetCode 102.二叉树的层序遍历 (js)

    ,没有则将该项初始为空数组[]方便后续添加元素。然后进行result[depth].push(node.val)操作,在递归函数中,首先判断result中是否含有当前深度的项((为了将同一深度的节点push到同一数组中)。(即逐层地,从左到右访问所有节点)。,其接受两个参数,一个是当前传入的树的。然后调用本身进行递归,将。,另一个是当前节点的。

    2025-01-28 12:00:27 175

    原创 LeetCode 70. 爬楼梯

    故采用动态规划的思想,拟定初始数组为[1,1](巧思,让i 为2时成立),从i =2开始循环遍历,最后根据n的值去数组中获取对应方案数即可。可以看出存在类似 array[i] = array[i-1] + array[i-2] 的关系。你有多少种不同的方法可以爬到楼顶呢?1. 1 阶 + 1 阶 + 1 阶。有两种方法可以爬到楼顶。1. 1 阶 + 1 阶。有三种方法可以爬到楼顶。2. 1 阶 + 2 阶。3. 2 阶 + 1 阶。

    2025-01-27 21:18:51 305

    原创 LeetCode 53.最大子数组和 (js)

    2.循环中,如果说array[i-1]+nums[i] 比 nums[i]要小,则说明array[i-1]是负数,则为了求得最大的连续和可舍去arrary[i-1],即array[i] = Math.max(array[i-1]+nums[i],nums[i]),定义两个指针,一个i,一个j,定义一个最大值max,嵌套循环数组去找i、j范围内的和,如果和大于max则更新max,时间复杂度高。,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。是数组中的一个连续部分。

    2025-01-27 20:59:49 589

    原创 Leetcode 46 全排列(js)

    3.对于每个path,对nums里面的值进行循环,如果当前path已经包含nums[i],则说明path中已包含nums[i]元素,如'122'这样,这种情况就不能把第二个2push进path中,所以要进行continue操作重新循环下一个nums[i],即为'123'这种情况。2.编写遍历函数dfs,接受一个参数即记录当前排列的数组(可以看作树的某一节点值)path,当path长度等于nums长度时,说明该排列已经完成,将当前排列path推入结果数组res,并结束当前函数。,并将其最终进行返回。

    2025-01-26 15:40:06 310

    原创 LeetCode20 有效的括号(js)

    利用了栈先进后出的特性,采用的最最最基础的枚举法,去循环、判断了每一种可能正确的情况。如果为空,说明所有开括号都正确匹配了闭括号,返回。这个优化后的解法保持了 O(n) 的时间复杂度,并且使代码更加简洁易读。来映射开括号到对应的闭括号,这样我们可以通过查找。是否为开括号,并且可以直接获取对应的闭括号。如果不为空,说明有未匹配的开括号,返回。循环来遍历字符串,这样可以直接使用。来获取栈顶元素,并与当前闭括号。当遇到闭括号时,我们直接使用。如果匹配,循环继续,因为。,判断字符串是否有效。已经移除了栈顶元素。

    2025-01-25 11:33:39 282

    原创 LeetCode 415 字符串相加(js)

    给定两个字符串形式的非负整数num1和num2,计算它们的和并同样以字符串形式返回。你不能使用任何內建的用于处理大整数的库(比如BigInteger), 也不能直接将输入的字符串转换为整数形式。

    2025-01-25 11:13:56 253

    原创 LeetCode 165. 比较版本号 (js)

    version1的第二个修订号为"2",version2的第二个修订号为"10":2<10,所以version1<version2。如果其中一个版本字符串的修订号较少,则将缺失的修订号视为。version1有更少的修订号,每个缺失的修订号按"0"处理。2.因为题目中出现了一种非常不好处理的情况,就是如果版本号相对少,要。忽略前导零,"01"和"001"都代表相同的整数"1"。了,统一变成数字1,其次是每个item转为数字非常。,这样就可以统一操作,方便判断1。

    2025-01-20 11:31:15 711

    原创 leetcode 3. 无重复字符的最长子串 (js)

    定义了左、右两个指针以及map对象的唯一性,遍历字符串,判断每次遍历的item是否在map中出现,但是前提是对应的map的value值是要大于左指针的。若出现过,则更新左指针的值以及maxlength.定义了左右指针和set数组,与解法1思想类似,但是少去了value值于左指针的判断。是解法2的优化版,省去了一些重复循环的清空比如说pwwkew。,请你找出其中不含有重复字符的。因为无重复字符的最长子串是。因为无重复字符的最长子串是。因为无重复字符的最长子串是。,所以其长度为3。,所以其长度为3。

    2025-01-20 10:28:15 263

    空空如也

    空空如也

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

    TA关注的人

    提示
    确定要删除当前文章?
    取消 删除
    手机看
    程序员都在用的中文IT技术交流社区

    程序员都在用的中文IT技术交流社区

    专业的中文 IT 技术社区,与千万技术人共成长

    专业的中文 IT 技术社区,与千万技术人共成长

    关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

    关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

    客服 返回
    顶部