自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【LeetCode】【剑指 Offer】 10- I. 斐波那契数列 (JavaScript)

原题写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下:F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。示例 1:输入:n = 2输出:1示例 2:输入:n = 5输出.

2022-05-06 23:53:38 189 1

原创 【LeetCode】56. 合并区间 (JavaScript)

原题区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。示例 1:输入:intervals = [[1,3],[2,6],[8,10],[15,18]]输出:[[1,6],[8,10],[15,18]]解释:区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例 2:输入:intervals = [[1,4],[4,5]]输出:[[1,5]]解释:区间 [1,.

2022-05-05 20:46:13 756

原创 【LeetCode】55. 跳跃游戏 (JavaScript)

原题给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标。示例 1:输入:nums = [2,3,1,1,4]输出:true解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。示例 2:输入:nums = [3,2,1,0,4]输出:false解释:无论怎样,总会到达下标为 3 的位置。但该下标的最大跳跃长度是 0 , 所以永远不可能到达最后.

2022-05-04 23:00:16 1779

原创 【LeetCode】54. 螺旋矩阵 (JavaScript)

原题给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]示例 2:输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,12,11,10,9,5,6,7]题解模拟/** * @param {number[][]} matrix * @.

2022-05-03 15:48:53 157

原创 【LeetCode】53. 最大子数组和 (JavaScript)

原题给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组 是数组中的一个连续部分。示例 1:输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。示例 2:输入:nums = [1]输出:1示例 3:输入:nums = [5,4,-1,7,8]输出:23题解动态规划/** * @param {number[]} nums .

2022-05-03 15:03:55 679

原创 【LeetCode】50. Pow(x, n) (JavaScript)

原题实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,xn )。示例 1:输入:x = 2.00000, n = 10输出:1024.00000示例 2:输入:x = 2.10000, n = 3输出:9.26100示例 3:输入:x = 2.00000, n = -2输出:0.25000解释:2-2 = 1/22 = 1/4 = 0.25题解分治法/** * @param {number} x * @param {number} n * @ret.

2022-05-03 14:33:17 311

原创 【LeetCode】100. 相同的树 (JavaScript)

原题给你两棵二叉树的根节点 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深度优先搜索/** * Definition for a binary tree n.

2022-05-02 18:00:55 899

原创 【MySQL】卸载与安装 MySQL 命令行

背景:Windows10 64位系统已经安装了 mysql-8.0.23 命令行,需要卸载然后安装 mysql-5.7.16卸载关闭 mysql 服务: cmd 命令行输入 net stop mysql在控制面板中删除 mysql 程序, 如果有的话删除安装目录下的文件, 直接删除(我的 mysql 是直接下载的压缩包解压的)删除 mysql 的环境变量此电脑 - 右键属性 - 高级系统设置 - 环境变量 找到系统变量中的path变量 - 编辑 - 找到 mysql 相.

2022-04-14 16:19:35 288

原创 【Bug】在Vue中使用Swiper出现图片播放混乱,计数错乱

需求:将轮播图封装成一个组件, 并在同一个页面中多次使用bug: 小圆点出现计数错乱; 轮播图播放混乱var mySwiper = new Swiper('swiper-container', {...});解决: 使用 ref 替代 类名 选择对应的 swiper 容器 (猜测是因为类名相同导致 swiper 混乱)var mySwiper = new Swiper(this.$refs.cur, {...});...

2022-04-11 11:07:30 1549

原创 【LeetCode】【剑指 Offer II】003. 前 n 个数字二进制中 1 的个数 (JavaScript)

原题给定一个非负整数 n ,请计算 0 到 n 之间的每个数字的二进制表示中 1 的个数,并输出一个数组。示例 1:输入: n = 2输出: [0,1,1]解释: 0 --> 01 --> 12 --> 10示例 2:输入: n = 5输出: [0,1,1,2,1,2]解释:0 --> 01 --> 12 --> 103 --> 114 --> 1005 --> 101说明 :0 <= n <.

2022-02-24 23:08:45 496

原创 【LeetCode】【剑指 Offer II】002. 二进制加法 (JavaScript)

原题给定两个 01 字符串 a 和 b ,请计算它们的和,并以二进制字符串的形式输出。输入为 非空 字符串且只包含数字 1 和 0。示例 1:输入: a = "11", b = "10"输出: "101"示例 2:输入: a = "1010", b = "1011"输出: "10101"题解模拟加法器/** * @param {string} a * @param {string} b * @return {string} */var addBinary = fu.

2022-02-23 21:07:41 339

原创 【LeetCode】【剑指 Offer II】001. 整数除法 (JavaScript)

原题给定两个整数 a 和 b ,求它们的除法的商 a/b ,要求不得使用乘号 '*'、除号 '/' 以及求余符号 '%' 。注意:整数除法的结果应当截去(truncate)其小数部分,例如:truncate(8.345) = 8 以及 truncate(-2.7335) = -2假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231, 231−1]。本题中,如果除法结果溢出,则返回 231 − 1示例 1:输入:a = 15, b = 2输出:7解释:15/2 = tr.

2022-02-22 23:42:00 521

原创 【LeetCode】49. 字母异位词分组 (JavaScript)

原题给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母通常恰好只用一次。示例 1:输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"]输出: [["bat"],["nat","tan"],["ate","eat","tea"]]示例 2:输入: strs = [""]输出: [[""]]示例 3:输入: strs = ["a".

2022-02-18 20:55:52 324

原创 【LeetCode】48. 旋转图像 (JavaScript)

原题难度中等1140收藏分享切换为英文接收动态反馈给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[[7,4,1],[8,5,2],[9,6,3]]示例 2:输入:matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],[15.

2022-01-29 14:26:22 1302

原创 【LeetCode】47. 全排列 II (JavaScript)

原题给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。示例 1:输入:nums = [1,1,2]输出:[[1,1,2], [1,2,1], [2,1,1]]示例 2:输入:nums = [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]题解回溯法+剪枝去重与第46题全排列解法相似,但本题数组含有重复数字故需要去重/** * @param {number[]} nums.

2022-01-28 23:49:47 896

原创 【LeetCode】46. 全排列 (JavaScript)

原题给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。示例 1:输入:nums = [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例 2:输入:nums = [0,1]输出:[[0,1],[1,0]]示例 3:输入:nums = [1]输出:[[1]]题解回溯法使用一个数组 mar 标记已经排列过的数/** * @param {number[].

2022-01-28 19:36:12 932

原创 【LeetCode】45. 跳跃游戏 II (JavaScript)

原题给你一个非负整数数组 nums ,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。你的目标是使用最少的跳跃次数到达数组的最后一个位置。假设你总是可以到达数组的最后一个位置。示例 1:输入: nums = [2,3,1,1,4]输出: 2解释: 跳到最后一个位置的最小跳跃数是 2。 从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。示例 2:输入: nums = [2,3,0,1,4]输出: 2题.

2022-01-28 19:12:32 282

原创 【LeetCode】43. 字符串相乘 (JavaScript)

原题给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。**注意:**不能使用任何内置的 BigInteger 库或直接将输入转换为整数。示例 1:输入: num1 = "2", num2 = "3"输出: "6"示例 2:输入: num1 = "123", num2 = "456"输出: "56088"两位数之积的位数不会超过这两个数位数的和每位数相乘的结果最大位数为二位乘法过程如图:.

2022-01-27 16:12:28 1132

原创 【LeetCode】40. 组合总和 II (JavaScript)

原题给定一个候选人编号的集合 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的每个数字在每个组合中只能使用 一次 。**注意:**解集不能包含重复的组合。示例 1:输入: candidates = [10,1,2,7,6,1,5], target = 8,输出:[[1,1,6],[1,2,5],[1,7],[2,6]]示例 2:输入: candidates = [2,5,2,1

2022-01-25 14:24:58 492

原创 【LeetCode】39. 组合总和 (JavaScript)

原题给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。candidates 中的 同一个 数字可以 无限制重复被选取 。如果至少一个数字的被选数量不同,则两种组合是不同的。对于给定的输入,保证和为 target 的不同组合数少于 150 个。示例 1:输入:candidates = [2,3,6,7], target = 7

2022-01-24 23:11:52 170

原创 【LeetCode】38. 外观数列 (JavaScript)

原题给定一个正整数 n ,输出外观数列的第 n 项。「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。你可以将其视作是由递归公式定义的数字字符串序列:countAndSay(1) = "1"countAndSay(n) 是对 countAndSay(n-1) 的描述,然后转换成另一个数字字符串。前五项如下:1. 12. 113. 214. 12115. 111221第一项是数字 1 描述前一项,这个数是 1

2022-01-23 17:47:38 91

原创 【LeetCode】36. 有效的数独 (JavaScript)

原题难度中等745收藏分享切换为英文接收动态反馈请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图)注意:一个有效的数独(部分已被填充)不一定是可解的。只需要根据以上规则,验证已经填入的数字是否有效即可。空白格用 '.' 表示。示例 1:输入:board = [["5","3",

2022-01-19 16:11:40 123

原创 【LeetCode】35. 搜索插入位置 (JavaScript)

原题难度简单1296收藏分享切换为英文接收动态反馈给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。示例 1:输入: nums = [1,3,5,6], target = 5输出: 2示例 2:输入: nums = [1,3,5,6], target = 2输出: 1示例 3:输入: nums = [1,3,5,6], target = 7输出: 4示例 4

2022-01-18 15:47:37 541

原创 【LeetCode】34. 在排序数组中查找元素的第一个和最后一个位置 (JavaScript)

原题给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。进阶:你可以设计并实现时间复杂度为 O(log n) 的算法解决此问题吗?示例 1:输入:nums = [5,7,7,8,8,10], target = 8输出:[3,4]示例 2:输入:nums = [5,7,7,8,8,10], target = 6输出:[-1,-1]示例 3:输入:nums =

2022-01-17 23:58:00 149

原创 【LeetCode】33. 搜索旋转排序数组 (JavaScript)

原题整数数组 nums 按升序排列,数组中的值 互不相同 。在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k+1], ..., nums[n-1], nums[0], nums[1], ..., nums[k-1]](下标 从 0 开始 计数)。例如, [0,1,2,4,5,6,7] 在下标 3 处经旋转后可能变为 [4,5,6,7,0,1,2] 。给你 旋转后 的数组 nums 和

2022-01-17 20:14:31 619

原创 【LeetCode】31. 下一个排列 (JavaScript)

原题实现获取 下一个排列 的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列(即,组合出下一个更大的整数)。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须 原地 修改,只允许使用额外常数空间。示例 1:输入:nums = [1,2,3]输出:[1,3,2]示例 2:输入:nums = [3,2,1]输出:[1,2,3]示例 3:输入:nums = [1,1,5]输出:[1,5,1]示例 4:输入:nums = [1]输出:[1]

2021-12-20 21:45:48 558

原创 【LeetCode】28. 实现 strStr() (JavaScript)

原题实现 strStr() 函数。给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回 -1。说明:当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。对于本题而言,当 needle 是空字符串时我们应当返回 0 。这与 C 语言的 strstr() 以及 Java 的 indexOf() 定义相符。示例 1:输入:haystack = "hell

2021-12-19 22:21:43 121

原创 【LeetCode】27. 移除元素 (JavaScript)

原题给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想象内部操作如下:// nums 是以“引用”方式传递的。也就是说,不对实参作任何拷贝in

2021-12-19 16:27:19 120

原创 【LeetCode】26. 删除有序数组中的重复项 (JavaScript)

原题给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想象内部操作如下:// nums 是以“引用”方式传递的。也就是说,不对实参做任何拷贝int len = removeDuplicates(

2021-12-19 15:55:09 113

原创 【LeetCode】24. 两两交换链表中的节点 (JavaScript)

原题给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。示例 1:输入:head = [1,2,3,4]输出:[2,1,4,3]示例 2:输入:head = []输出:[]示例 3:输入:head = [1]输出:[1]方法一:设置哨兵节点/** * Definition for singly-linked list. * function ListNode(val, next)

2021-12-19 15:12:12 1375

原创 【LeetCode】22. 括号生成 (JavaScript)

原题数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。示例 1:输入:n = 3输出:["((()))","(()())","(())()","()(())","()()()"]示例 2:输入:n = 1输出:["()"]方法一:dfs深度优先遍历剪枝,排除不符合条件的分支/** * @param {number} n * @return {string[]} */var generateParenthesis = fun

2021-12-15 19:28:51 1072

原创 【LeetCode】21. 合并两个有序链表 (JavaScript)

原题将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例 1:输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]示例 2:输入:l1 = [], l2 = []输出:[]示例 3:输入:l1 = [], l2 = [0]输出:[0]方法一:迭代/** * Definition for singly-linked list. * function ListNode(val, next)

2021-12-14 16:43:30 111

原创 【LeetCode】20. 有效的括号 (JavaScript)

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

2021-12-12 11:07:14 389

原创 【LeetCode】18. 四数之和 (JavaScript)

原题给你一个由 n 个整数组成的数组 nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] (若两个四元组元素一一对应,则认为两个四元组重复):0 <= a, b, c, d < na、b、c 和 d 互不相同nums[a] + nums[b] + nums[c] + nums[d] == target你可以按 任意顺序 返回答案 。示例 1:输入:nums

2021-12-11 23:37:49 263

原创 【LeetCode】17. 电话号码的字母组合 (JavaScript)

原题给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZyyMkapI-1639236892980)(image/LeetCode/image-20211206103747376.png)]示例 1:输入:digits = "23"输出:["ad","ae","af","bd","be","bf","cd"

2021-12-11 23:35:33 678

原创 【LeetCode】19. 删除链表的倒数第 N 个结点 (JavaScript)

原题给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。示例 1:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8Um8XfcD-1639236753836)(image/LeetCode/image-20211210092535557.png)]输入:head = [1,2,3,4,5], n = 2输出:[1,2,3,5]示例 2:输入:head = [1], n = 1输出:[]示例 3:输入:head = [1,2], n = 1

2021-12-11 23:33:53 442

原创 【LeetCode】16. 最接近的三数之和 (JavaScript)

原题给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数,使它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在恰好一个解。示例 1:输入:nums = [-1,2,1,-4], target = 1输出:2解释:与 target 最接近的和是 2 (-1 + 2 + 1 = 2) 。示例 2:输入:nums = [0,0,0], target = 1输出:0双指针/** * @param {number

2021-12-05 17:42:09 654

原创 【LeetCode】15. 三数之和 (JavaScript)

原题给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。示例 1:输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]示例 2:输入:nums = []输出:[]示例 3:输入:nums = [0]输出:[]方法一:(执行效率非常低。。)/** * @param {numbe

2021-12-05 16:51:51 687

原创 【LeetCode】14. 最长公共前缀 (JavaScript)

原题编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入:strs = ["flower","flow","flight"]输出:"fl"示例 2:输入:strs = ["dog","racecar","car"]输出:""解释:输入不存在公共前缀。暴力,纵向扫描/** * @param {string[]} strs * @return {string} */var longestCommonPrefix = funct

2021-12-03 11:44:38 405

原创 【LeetCode】13. 罗马数字转整数 (JavaScript)

原题罗马数字包含以下七种字符: 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 。

2021-12-03 11:41:53 99

空空如也

空空如也

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

TA关注的人

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