自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 leetcode 462.最少移动次数使数组元素相等 Ⅱ(js)

题目给你一个长度为 n 的整数数组 nums ,返回使所有数组元素相等需要的最少移动数。在一步操作中,你可以使数组中的一个元素加 1 或者减 1 。示例 1:输入:nums = [1,2,3]输出:2解释:只需要两步操作(每步操作指南使一个元素加 1 或减 1):[1,2,3] => [2,2,3] => [2,2,2]示例 2:输入:nums = [1,10,2,9]输出:16提示:n == nums.length1 <= nums.length

2022-05-19 21:05:08 1449

原创 leetcode 953.验证外星语词典(js)

题目某种外星语也使用英文小写字母,但可能顺序 order 不同。字母表的顺序(order)是一些小写字母的排列。给定一组用外星语书写的单词 words,以及其字母表的顺序 order,只有当给定的单词在这种外星语中按字典序排列时,返回 true;否则,返回 false。示例 1:输入:words = ["hello","leetcode"], order = "hlabcdefgijkmnopqrstuvwxyz"输出:true解释:在该语言的字母表中,'h' 位于 'l' 之前,所以单词序列是

2022-05-17 14:10:07 304

原创 gitee(git) 向库中提交修改的新代码,合并主分支

向库中提交新分支后,查看分支 git branch,这时应只有自己的分支 xxx。首先在本地创建要提交到的主分支 git checkout test拉取文件 git pull origin test切换到自己的分支 git checkout xxx更新文件 git add .本地提交一次 git commit -m “修改xxx文件”切换到要提交的本地分支 git checkout test合并代码 git checkout xxx (此时是test代码与xxx代码合并)提交到远程分支

2022-05-13 14:20:24 656

原创 leetcode 671.二叉树中第二小的节点(js)

题目给定一个非空特殊的二叉树,每个节点都是正数,并且每个节点的子节点数量只能为 2 或 0。如果一个节点有两个子节点的话,那么该节点的值等于两个子节点中较小的一个。更正式地说,即 root.val = min(root.left.val, root.right.val) 总成立。给出这样的一个二叉树,你需要输出所有节点中的 第二小的值 。如果第二小的值不存在的话,输出 -1 。示例 1:输入:root = [2,2,5,null,null,5,7]输出:5解释:最小的值是 2 ,第二小的值是

2022-05-10 16:20:25 256

原创 leetcode 433.最小基因变化(js)

题目基因序列可以表示为一条由 8 个字符组成的字符串,其中每个字符都是 ‘A’、‘C’、‘G’ 和 ‘T’ 之一。假设我们需要调查从基因序列 start 变为 end 所发生的基因变化。一次基因变化就意味着这个基因序列中的一个字符发生了变化。例如,“AACCGGTT” --> “AACCGGTA” 就是一次基因变化。另有一个基因库 bank 记录了所有有效的基因变化,只有基因库中的基因才是有效的基因序列。给你两个基因序列 start 和 end ,以及一个基因库 bank ,请你找出并返

2022-05-07 14:31:46 139

原创 leetcode 713.乘积小于K的子数组(js)

题目给你一个整数数组 nums 和一个整数 k ,请你返回子数组内所有元素的乘积严格小于 k 的连续子数组的数目。示例 1:输入:nums = [10,5,2,6], k = 100输出:8解释:8 个乘积小于 100 的子数组分别为:[10]、[5]、[2],、[6]、[10,5]、[5,2]、[2,6]、[5,2,6]。需要注意的是 [10,5,2] 并不是乘积小于 100 的子数组。示例 2:输入:nums = [1,2,3], k = 0输出:0提示:1 <= num

2022-05-05 13:58:39 461

原创 leetcode 1823.找出游戏中的获胜者(js)

题目共有 n 名小伙伴一起做游戏。小伙伴们围成一圈,按 顺时针顺序 从 1 到 n 编号。确切地说,从第 i 名小伙伴顺时针移动一位会到达第 (i+1) 名小伙伴的位置,其中 1 <= i < n ,从第 n 名小伙伴顺时针移动一位会回到第 1 名小伙伴的位置。游戏遵循如下规则:从第 1 名小伙伴所在位置 开始 。沿着顺时针方向数 k 名小伙伴,计数时需要 包含 起始时的那位小伙伴。逐个绕圈进行计数,一些小伙伴可能会被数过不止一次。你数到的最后一名小伙伴需要离开圈子,并视作输掉游戏。

2022-05-04 15:35:02 176

原创 leetcode 1823.找出游戏中的获胜者(js)

题目共有 n 名小伙伴一起做游戏。小伙伴们围成一圈,按 顺时针顺序 从 1 到 n 编号。确切地说,从第 i 名小伙伴顺时针移动一位会到达第 (i+1) 名小伙伴的位置,其中 1 <= i < n ,从第 n 名小伙伴顺时针移动一位会回到第 1 名小伙伴的位置。游戏遵循如下规则:从第 1 名小伙伴所在位置开始 。沿着顺时针方向数 k 名小伙伴,计数时需要包含起始时的那位小伙伴。逐个绕圈进行计数,一些小伙伴可能会被数过不止一次。你数到的最后一名小伙伴需要离开圈子,并视作输掉游戏。

2022-05-04 15:31:16 145

原创 leetcode 88.合并两个有序数组(js)

题目给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n 。示例 1:输入:nums1 = [1,2,3

2022-05-04 14:01:32 207

原创 leetcode 226.翻转二叉树(js)

题目给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。示例 1:输入:root = [4,2,7,1,3,6,9]输出:[4,7,2,9,6,3,1]示例 2:输入:root = [2,1,3]输出:[2,3,1]示例 3:输入:root = []输出:[]提示:树中节点数目范围在 [0, 100] 内-100 <= Node.val <= 100来源:力扣(LeetCode)链接:https://leetcode-cn.com/pro

2022-05-03 20:29:06 466

原创 leetcode 111.二叉树的最小深度(js)

题目给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明:叶子节点是指没有子节点的节点。示例 1:输入:root = [3,9,20,null,null,15,7]输出:2示例 2:输入:root = [2,null,3,null,4,null,5,null,6]输出:5提示:树中节点数的范围在 [0, 105] 内-1000 <= Node.val <= 1000来源:力扣(LeetCode)链接:https://le

2022-05-03 20:23:11 1516

原创 leetcode 572.另一颗树的子树(js)

572.另一颗树的子树题目给你两棵二叉树 root 和 subRoot 。检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树。如果存在,返回 true ;否则,返回 false 。二叉树 tree 的一棵子树包括 tree 的某个节点和这个节点的所有后代节点。tree 也可以看做它自身的一棵子树。示例 1:输入:root = [3,4,5,1,2], subRoot = [4,1,2]输出:true示例 2:输入:root = [3,4,5,1,2,null,nu

2022-05-03 20:07:53 405

原创 leetcode 1475.商品折扣后的最终价格(js)

1475.商品折扣后的最终价格题目给你一个数组 prices ,其中 prices[i] 是商店里第 i 件商品的价格。商店里正在进行促销活动,如果你要买第 i 件商品,那么你可以得到与 prices[j] 相等的折扣,其中 j 是满足 j > i 且 prices[j] <= prices[i] 的 最小下标 ,如果没有满足条件的 j ,你将没有任何折扣。请你返回一个数组,数组中第 i 个元素是折扣后你购买商品 i 最终需要支付的价格。示例 1:输入:prices = [8,4,6

2022-05-03 19:59:02 343

原创 leetcode 844.比较含退格的字符串(js)

题目给定 s 和 t 两个字符串,当它们分别被输入到空白的文本编辑器后,如果两者相等,返回 true 。# 代表退格字符。注意:如果对空文本输入退格字符,文本继续为空。示例 1:输入:s = "ab#c", t = "ad#c"输出:true解释:s 和 t 都会变成 "ac"。示例 2:输入:s = "ab##", t = "c#d#"输出:true解释:s 和 t 都会变成 ""。示例 3:输入:s = "a#c", t = "b"输出:false解释:s 会变成 "c"

2022-05-03 19:41:49 240

原创 leetcode 496.下一个更大元素 I(js)

题目nums1 中数字 x 的 下一个更大元素 是指 x 在 nums2 中对应位置 右侧 的 第一个 比 x 大的元素。给你两个 没有重复元素 的数组 nums1 和 nums2 ,下标从 0 开始计数,其中nums1 是 nums2 的子集。对于每个 0 <= i < nums1.length ,找出满足 nums1[i] == nums2[j] 的下标 j ,并且在 nums2 确定 nums2[j] 的 下一个更大元素 。如果不存在下一个更大元素,那么本次查询的答案是 -1 。返

2022-05-03 18:01:30 128

原创 leetcode 1305.两颗二叉搜索树中的所有元素(js)

题目给你 root1 和 root2 这两棵二叉搜索树。请你返回一个列表,其中包含 两棵树 中的所有整数并按 升序 排序。示例 1:输入:root1 = [2,1,4], root2 = [1,0,3]输出:[0,1,1,2,3,4]示例 2:输入:root1 = [1,null,8], root2 = [8,1]输出:[1,1,8,8]提示:每棵树的节点数在 [0, 5000] 范围内-105 <= Node.val <= 105来源:力扣(LeetCode)链接

2022-05-03 14:31:54 258

原创 leetcode 26.删除有序数组中的重复项(js)

题目给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。由于在某些语言中不能改变数组的长度,所以必须将结果放在数组nums的第一部分。更规范地说,如果在删除重复项之后有 k 个元素,那么 nums 的前 k 个元素应该保存最终结果。将最终结果插入 nums 的前 k 个位置后返回 k 。不要使用额外的空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。判题标准:系统

2022-04-30 15:47:33 395

原创 leetcode 167. 两数之和 II - 输入有序数组(js)

题目给你一个下标从 1 开始的整数数组 numbers ,该数组已按 非递减顺序排列 ,请你从数组中找出满足相加之和等于目标数 target 的两个数。如果设这两个数分别是 numbers[index1] 和 numbers[index2] ,则 1 <= index1 < index2 <= numbers.length 。以长度为 2 的整数数组 [index1, index2] 的形式返回这两个整数的下标 index1 和 index2。你可以假设每个输入 只对应唯一的答案

2022-04-30 15:39:28 2068

原创 leetcode 20.有效括号(js)

20.有效括号题目给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。示例 1:输入:s = "()"输出:true示例 2:输入:s = "()[]{}"输出:true示例 3:输入:s = "(]"输出:false示例 4:输入:s = "([)]"输出:false示例 5:输入:s = "{[]}"输出:true提示:1

2022-04-29 17:07:00 516

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

题目给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 true ;否则,返回 false 。叶子节点 是指没有子节点的节点。示例 1:输入:root = [5,4,8,11,null,13,4,7,2,null,null,null,1], targetSum = 22输出:true解释:等于目标和的根节点到叶节点路径如上图所示。示例 2:输入:r

2022-04-29 15:39:44 292

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

题目给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例 1:输入:p = [1,2,3], q = [1,2,3]输出:true示例 2:输入:p = [1,2], q = [1,null,2]输出:false示例 3:输入:p = [1,2,1], q = [1,1,2]输出:false提示:两棵树上的节点数目都在范围 [0, 100] 内-104 <= Node.val

2022-04-29 15:38:45 220

原创 深度优先搜索的概念原理、模板和leetcode刷题推荐(js)

深度优先搜索属于图算法的一种,英文缩写为DFS即Depth First Search.其过程简要来说是对每一个可能的分支路径深入到不能再深入为止,而且每个节点只能访问一次。

2022-04-29 15:37:01 834

原创 二分查找的概念原理、模板和leetcode刷题推荐(js)

二分法主要是解决在一堆有序的元素中查找指定的元素的问题,各种元素的查找,只要有序就可以用二分查找来优化。

2022-04-28 16:15:35 231

原创 leetcode 704.二分查找(js)

题目给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。示例 1:输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4示例 2:输入: nums = [-1,0,3,5,9,12], target = 2输出: -1解释: 2 不存在 nums 中因此返回 -1提示:你可以假设 num

2022-04-28 16:09:12 146

原创 leetcode 441.排列硬币(js)

题目你总共有 n 枚硬币,并计划将它们按阶梯状排列。对于一个由 k 行组成的阶梯,其第 i 行必须正好有 i 枚硬币。阶梯的最后一行 可能 是不完整的。给你一个数字 n ,计算并返回可形成 完整阶梯行 的总行数。示例 1:输入:n = 5输出:2解释:因为第三行不完整,所以返回 2 。示例 2:输入:n = 8输出:3解释:因为第四行不完整,所以返回 3 。提示:1 <= n <= 2^31 - 1来源:力扣(LeetCode)链接:https://leetc

2022-04-28 16:06:33 261

原创 leetcode 852.山脉数组的峰顶索引(js)

题目符合下列属性的数组 arr 称为 山脉数组 :arr.length >= 3存在 i(0 < i < arr.length - 1)使得:arr[0] < arr[1] < … arr[i-1] < arr[i]arr[i] > arr[i+1] > … > arr[arr.length - 1]给你由整数组成的山脉数组 arr ,返回任何满足 arr[0] < arr[1] < … arr[i - 1] &l

2022-04-28 16:04:50 185

原创 leetcode 278.第一个错误的版本(js)

题目你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。假设你有 n 个版本 [1, 2, …, n],你想找出导致之后所有版本出错的第一个错误的版本。你可以通过调用 bool isBadVersion(version) 接口来判断版本号 version 是否在单元测试中出错。实现一个函数来查找第一个错误的版本。你应该尽量减少对调用 API 的次数。示例 1:输入:n = 5, b

2022-04-28 16:03:49 132

原创 CSS 选择器总结与 ^ $ * + ~ > 的区别

css3属性选择器p[id^="one”]:表示p标签的id选择器中开头为one的就会命中。P[id$="mmm”]:表示p标签的id选择器中结尾为mmm的就会命中。P[id*=”ddd”]:表示p标签的id选择器中包含为ddd的就会命中。子代选择器(>):A>B 表示选择A元素的所有子B元素。与A B的区别在于,A B选择所有后代元素,而A>B只选择一代。兄弟选择器(+,~):p~ul选择器 p之后出现的所有ul。两种元素必须拥有相同的父元素,但是 ul不必直接紧

2022-04-16 13:52:22 371

原创 npm 卸载/安装指定版本的包(库)

卸载库: npm uninstall vue-router安装指定版本:npm install vue-router@3.5.3

2022-04-01 21:48:08 3377

原创 gitee(git) 如何向库中提交新分支

1. 首先下载Git Bash应用,安装成功后鼠标右键点击文件夹空白区域会有效果体现。2. 右键点击想要提交的文件夹,选中Git Bash Here。3. 配置环境git init成功后会有隐藏文件夹出现。4. 创建新分支git checkout -b xxx(分支名xxx)。5. 在新分支中添加文件get add .最后的实心点代表文件夹内的所有文件。6. 进行第一次提交git commit -m "第一次提交"双引号里是提交的备

2022-03-31 16:52:45 2765 1

原创 leetcode 1672.最富有客户的资产总量(js)

题目给你一个 m x n 的整数网格 accounts ,其中 accounts[i][j] 是第 i 位客户在第 j 家银行托管的资产数量。返回最富有客户所拥有的 资产总量 。客户的 资产总量 就是他们在各家银行托管的资产数量之和。最富有客户就是 资产总量 最大的客户。示例 1:输入:accounts = [[1,2,3],[3,2,1]]输出:6解释:第 1 位客户的资产总量 = 1 + 2 + 3 = 6第 2 位客户的资产总量 = 3 + 2 + 1 = 6两位客户都是最富有的,资

2022-03-30 13:37:51 135

原创 leetcode 1342.将数字变成0的操作次数(js)

题目给你一个非负整数 num ,请你返回将它变成 0 所需要的步数。 如果当前数字是偶数,你需要把它除以 2 ;否则,减去 1 。示例 1:输入:num = 14输出:6解释:步骤 1) 14 是偶数,除以 2 得到 7 。步骤 2) 7 是奇数,减 1 得到 6 。步骤 3) 6 是偶数,除以 2 得到 3 。步骤 4) 3 是奇数,减 1 得到 2 。步骤 5) 2 是偶数,除以 2 得到 1 。步骤 6) 1 是奇数,减 1 得到 0 。示例 2:输入:num = 8输出

2022-03-29 16:12:12 246

原创 leetcode 1337.矩阵中战斗力最弱的K行(js)

题目给你一个大小为 m * n 的矩阵 mat,矩阵由若干军人和平民组成,分别用 1 和 0 表示。请你返回矩阵中战斗力最弱的 k 行的索引,按从最弱到最强排序。如果第 i 行的军人数量少于第 j 行,或者两行军人数量相同但 i 小于 j,那么我们认为第 i 行的战斗力比第 j 行弱。军人 总是 排在一行中的靠前位置,也就是说 1 总是出现在 0 之前。示例 1:输入:mat = [[1,1,0,0,0], [1,1,1,1,0], [1,0,0,0,0], [1,1,0,0,0],

2022-03-28 19:12:37 117

原创 leetcode 412.Fizz Buzz(js)

题目给你一个整数 n ,找出从 1 到 n 各个整数的 Fizz Buzz 表示,并用字符串数组 answer(下标从 1 开始)返回结果,其中:answer[i] == "FizzBuzz" 如果 i 同时是 3 和 5 的倍数。answer[i] == "Fizz" 如果 i 是 3 的倍数。answer[i] == "Buzz" 如果 i 是 5 的倍数。answer[i] == i (以字符串形式)如果上述条件全不满足。示例 1:输入:n = 3输出:["1","2","Fizz"

2022-03-18 13:42:22 401

原创 leetecode 383.赎金信(js)

题目给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。如果可以,返回 true ;否则返回 false 。magazine 中的每个字符只能在 ransomNote 中使用一次。示例 1:输入:ransomNote = "a", magazine = "b"输出:false示例 2:输入:ransomNote = "aa", magazine = "ab"输出:false示例 3:输入:ransom

2022-03-18 12:56:52 456

原创 leetcode 234.回文链表(js)

题目给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。示例 1:输入:head = [1,2,2,1]输出:true示例 2:输入:head = [1,2]输出:false提示:链表中节点数目在范围[1, 105] 内0 <= Node.val <= 9进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?来源:力扣(LeetCode)链接:https://leetcode-cn.

2022-03-17 19:13:30 784

原创 leetcode 13.罗马数字转整数(js)

题目罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1 。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。

2022-03-16 15:00:55 223

原创 leetcode 1502.判断是否形成等差数列(js)

题目给你一个数字数组 arr 。如果一个数列中,任意相邻两项的差总等于同一个常数,那么这个数列就称为 等差数列 。如果可以重新排列数组形成等差数列,请返回 true ;否则,返回 false 。示例 1:输入:arr = [3,5,1]输出:true解释:对数组重新排序得到 [1,3,5] 或者 [5,3,1] ,任意相邻两项的差分别为 2 或 -2 ,可以形成等差数列。示例 2:输入:arr = [1,2,4]输出:false解释:无法通过重新排序得到等差数列。提示:2 &l

2022-03-15 16:50:43 1009

原创 leetcode 2044.统计按位或能得到最大值的子集数目(js)

题目给你一个整数数组 nums ,请你找出 nums 子集 按位或 可能得到的 最大值 ,并返回按位或能得到最大值的 不同非空子集的数目 。如果数组 a 可以由数组 b 删除一些元素(或不删除)得到,则认为数组 a 是数组 b 的一个 子集 。如果选中的元素下标位置不一样,则认为两个子集 不同 。对数组 a 执行 按位或 ,结果等于 a[0] OR a[1] OR … OR a[a.length - 1](下标从 0 开始)。示例 1:输入:nums = [3,1]输出:2解释:子集按位或能得

2022-03-15 16:49:44 609

原创 leetcode 590.N叉树的后序遍历(js)

题目给定一个 n 叉树的根节点 root ,返回 其节点值的 后序遍历 。n 叉树 在输入中按层序遍历进行序列化表示,每组子节点由空值 null 分隔(请参见示例)。示例 1:输入:root = [1,null,3,2,4,null,5,6]输出:[5,6,3,2,4,1]示例 2:输入:root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]输出:[2,

2022-03-11 14:36:46 652

空空如也

空空如也

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

TA关注的人

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