自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【LeetCode】转置矩阵(JavaScript)

给你一个二维整数数组 matrix, 返回 matrix 的 转置矩阵 。矩阵的 转置 是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[[1,4,7],[2,5,8],[3,6,9]]示例 2:输入:matrix = [[1,2,3],[4,5,6]]输出:[[1,4],[2,5],[3,6]]这道题其实很简单,只要把相对应的位置上的数字交换就可以。/** * @param {number[]

2021-02-25 09:51:48 310

原创 source-map:webpack开发环境和生产环境选择

[inline-|hidden-|eval-][nosources-][cheap-[module-]]source-mapsource-map:外部错误代码准确信息 和 源代码的错误位置inline-source-map:内联只生成一个内联source-map错误代码准确信息 和 源代码的错误位置hiddle-source-map:外部错误代码准确信息,但没有错误位置不能追踪源代码错误,只能提示到构建后代码的错误位置eval-source-map:内联每一个文件都生成对

2021-02-09 14:53:46 573

原创 解决npm下载很慢的问题

为什么下载很慢?因为使用 npm 下载,是去国外的网站下载的。要先去国外的网站找资源下载,然后再回来,可想而知,速度当然慢。如何解决?庆幸的是,可以使用淘宝镜像解决。(没错,它不好好卖东西,来搞服务器了)有多种方法,我在这里提供一种最简单、可以一劳永逸的方法。淘宝服务器地址为:https://registry.npm.taobao.org我们可以把这个地址加入配置文件中:npm config set registry https://registry.npm.taobao.org#

2021-02-06 11:17:13 475

原创 promise的作用

作用:解决异步回调地狱的问题,但注意,并不能减少代码量,还可能比原来的代码还多。代码量问题不是 promise 该在意的,重点是回调地狱回调地狱回调地狱,重要的事情说三遍!什么是回调地狱?在写异步方法的时候,如果需求复杂,就需要进行方法的多层嵌套。(异步方法是不能用 return 然后再去多次调用的!异步方法会被放到队列里,然后等主方法完成后才会执行队列的内容,因此 return 得到的是 undefined)多层嵌套会出现以下这种情况:f(data,fun(){ console.log(d

2021-01-27 13:49:35 243

原创 【LeetCode】寻找峰值(JavaScript)

题目:峰值元素是指其值大于左右相邻值的元素。给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位置即可。你可以假设 nums[-1] = nums[n] = -∞。示例 1:输入: nums = [1,2,3,1]输出: 2解释: 3 是峰值元素,你的函数应该返回其索引 2。示例 2:输入: nums = [1,2,1,3,5,6,4]输出: 1 或 5解释: 你的函数可以返回索

2020-09-16 16:03:27 151

原创 【LeetCode】翻转二叉树(JavaScript)

题目:翻转一棵二叉树。示例:方法一:递归法递归是最简单想到的,直接交换左右子树,然后依次递归到左右子树,继续上面的操作,直到左右子树都为空,就会返回翻转后的二叉树。/** * Definition for a binary tree node. * function TreeNode(val) { * this.val = val; * this.left = this.right = null; * } *//** * @param {TreeNode} roo

2020-09-16 11:05:01 321

原创 【LeetCode】第一个错误的版本(JavaScript)

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

2020-08-22 16:54:03 281

原创 【LeetCode】对称二叉树(JavaScript)

题目:给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。即其关于中间的线对称,左子树的左子节点等于右子树的右子节点,左子树的右子节点等于右子树的左子节点。递归法如果左右子树都为空,说明是对称的;如果只有一个子树为空,说明不对称;如果左右子树当前的值不相等,说明不相等。然后再递归求 p 的左子树与 q 的右子树,以及 p 的右子树与 q 的左子树。/** * Definition for a binary tree node. * function

2020-08-22 16:08:41 291

原创 【LeetCode】礼物的最大价值(JavaScript)

题目:在一个 m*n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋盘的右下角。给定一个棋盘及其上面的礼物的价值,请计算你最多能拿到多少价值的礼物?示例 1:输入:[[1,3,1],[1,5,1],[4,2,1]]输出: 12解释: 路径 1→3→5→2→1 可以拿到最多价值的礼物这种就是使用动态规划,因为每一次的结果都靠前一次的结果。因为本题中只能向右或者向下移动一格,所以在下一步的

2020-08-20 14:04:19 401

原创 【LeetCode】从上到下打印二叉树(JavaScript)

题目:从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。例如:给定二叉树: [3,9,20,null,null,15,7],3/ \9 20/ \15 7(20的两个子节点)返回:[3,9,20,15,7]这种题可以使用广度优先。使用模拟队列,将这一层的节点放入queue中,再依次取出queue中的每个值,放入res中,再将下一层的节点放入queue中。依次类推,当queue为空时,则遍历了所有的节点,返回res。时间复杂度O(N),空间复杂度O(N)。

2020-08-19 19:53:03 303

原创 【LeetCode】0~n-1中缺失的数字(JavaScript)

题目:一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。示例 1:输入: [0,1,3]输出: 2示例 2:输入: [0,1,2,3,4,5,6,7,9]输出: 8直接遍历直接找到一个数值和数组下标不一样的位置,返回。时间复杂度O(N)。var missingNumber = function(nums) { for(var i=0;i<nums.lengt

2020-08-18 16:52:56 252

原创 【LeetCode】连续子数组的最大和(JavaScript)

题目:输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。示例1:输入: nums = [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。题目要求时间复杂度O(N),不能暴力。可以考虑,记录前面的和,如果前一个和 <0 ,则直接抛弃它,使用自己的进行记录。每一次看这个和与最大值比较,取最大值。因为只关注前一个和与本身这个数值,所以可以使用两个变量存储这两个数。

2020-08-18 14:11:20 472

原创 【LeetCode】最小的k个数(JavaScript)

题目:输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。示例 1:输入:arr = [3,2,1], k = 2输出:[1,2] 或者 [2,1]示例 2:输入:arr = [0,1,2,1], k = 1输出:[0]可以直接用排序法,但是默认排序的是用字符串形式排序的,所以要用 arr.sort((a,b) => a-b) 来进行排序。时间复杂度O(NlogN)。如果这是你的最终结果肯定不行,必

2020-08-18 11:56:57 435

原创 【LeetCode】数组中出现次数超过一半的数字(JavaScript)

题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入: [1, 2, 3, 2, 2, 2, 5, 4, 2]输出: 2排序法直接排序后,选出出现次数最多的一个。时间复杂度O(NlogN),空间复杂度O(1)。var majorityElement = function(nums) { nums.sort(); var count = 1; for(var i=0;i<num

2020-08-17 20:18:51 467

原创 【LeetCode】调整数组顺序使奇数位于偶数前面(JavaScript)

题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。示例:输入:nums = [1,2,3,4]输出:[1,3,2,4]注:[3,1,2,4] 也是正确的答案之一。在本题中,是不关注奇数顺序和偶数顺序的。因此,可以想到用双指针法,从前面找偶数并从后面找奇数,然后两数交换。时间复杂度O(N),空间复杂度O(1)。var exchange = function(nums) { var left = 0; var

2020-08-17 16:59:46 211

原创 【LeetCode】矩阵中的路径(JavaScript)

题目:请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一格开始,每一步可以在矩阵中向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格,那么该路径不能再次进入该格子。例如,在下面的3×4的矩阵中包含一条字符串“bfce”的路径(路径中的字母用加粗标出)。[[“a”,“b”,“c”,“e”],[“s”,“f”,“c”,“s”],[“a”,“d”,“e”,“e”]]但矩阵中不包含字符串“abfb”的路径,因为字符串的第一个字符b占据了矩阵中的第一行

2020-08-17 15:19:26 295

原创 【LeetCode】旋转数组的最小数字(JavaScript)

题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。示例 1:输入:[3,4,5,1,2]输出:1示例 2:输入:[2,2,2,0,1]输出:0可以直接使用遍历,时间复杂度O(N)。但作为面试题,肯定还是要更简便的方法,不可能这么简单。因为是有序数组的旋转,所以可以使用二分法。但这里需要注意边界问题。如果 numb

2020-08-17 13:59:28 209

原创 【LeetCode】二维数组中的查找(JavaScript)

题目:在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:现有矩阵 matrix 如下:[[1, 4, 7, 11, 15],[2, 5, 8, 12, 19],[3, 6, 9, 16, 22],[10, 13, 14, 17, 24],[18, 21, 23, 26, 30]]给定 target = 5,返回 true。给定 t

2020-08-17 10:15:33 241

原创 【LeetCode】移动零(JavaScript)

题目:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:1、必须在原数组上操作,不能拷贝额外的数组。2、尽量减少操作次数。方法一直接搜索非0值,将其覆盖在前面的值,然后剩余的就是0值。时间复杂度O(N),空间复杂度O(1)。var moveZeroes = function(nums) { var index = 0; //确定目前0的位置 for(v

2020-08-16 14:11:06 187

原创 【LeetCode】验证回文串(JavaScript)

题目:给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: “A man, a plan, a canal: Panama”输出: true示例 2:输入: “race a car”输出: false依旧是双指针的天堂。用两个指针,一个从前面开始,一个从后面开始,比较两个是不是相同,不相同就返回 false,最后返回 true。这里的关键是判断是否是字母和数字,因此可以使用正则表达式,选择不是字

2020-08-16 13:39:44 398

原创 【LeetCode】反转字符串(JavaScript)

题目:编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例 1:输入:[“h”,“e”,“l”,“l”,“o”]输出:[“o”,“l”,“l”,“e”,“h”]示例 2:输入:[“H”,“a”,“n”,“n”,“a”,“h”]输出:[“h”,“a”,“n”,“n”,“a”,“H”]做多

2020-08-16 11:38:32 193

原创 【LeetCode】旋转数组(JavaScript)

题目:给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。示例 1:输入: [1,2,3,4,5,6,7] 和 k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,4]示例 2:输入: [-1,-100,3,99] 和 k = 2输出: [3,99,-1,-100]解释:向右旋转 1 步: [99,-1,-100,3]

2020-08-15 11:12:51 173

原创 【LeetCode】买卖股票的最佳时机II(JavaScript)

题目:给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格

2020-08-14 19:42:25 161

原创 【LeetCode】买卖股票的最佳时机(JavaScript)

题目:给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。注意:你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不能在买入前卖出股票。示例 2:输入

2020-08-14 17:24:22 113

原创 【LeetCode】杨辉三角(JavaScript)

题目:给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入: 5输出:[[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]直接暴力法先将每个子数组的前后两个赋值为1,然后中间的由前一个子数组的两个相加。var generate = function(numRows) { var arr = []; for(var i=0;i<numRows;i++)

2020-08-14 10:39:57 170

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

题目:给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例:给定 1->2->3->4, 你应该返回 2->1->4->3.直接用两个指针交换对应的节点。单链表需要注意的是,小心将节点的 next 变化后找不到原来的 next 指向的位置。请读者按照代码的注释进行画图(应该容易画出来的),只要画出来了就很容易看懂的。加油ヾ(◍°∇°◍)ノ゙/** * Definition for s

2020-08-13 11:47:21 507

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

题目:给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?使用双指针法说是双指针,其实需要三个指针,两个用于遍历,一个用于返回。使用两个指针,一个快指针先移动(n+1)步,则两个指针中间有n个节点,然后一直让两个指针一起移动,直到快指针为空,

2020-08-13 11:35:24 418

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

题目:将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4设定一个头结点pre,并设定一个移动节点指针cur。当 l1 和 l2 都不是空链表时,判断 l1 和 l2 哪一个链表的头节点的值更小,将较小值的节点添加到头结点 pre 里,当一个节点被添加到头结点里 pre 之后,将对应链表中的节点向后移一位,并移动移动节

2020-08-12 16:36:41 318

原创 【LeetCode】颜色填充(JavaScript)

题目:编写函数,实现许多图片编辑软件都支持的「颜色填充」功能。待填充的图像用二维数组 image 表示,元素为初始颜色值。初始坐标点的横坐标为 sr 纵坐标为 sc。需要填充的新颜色为 newColor 。「周围区域」是指颜色相同且在上、下、左、右四个方向上存在相连情况的若干元素。请用新颜色填充初始坐标点的周围区域,并返回填充后的图像。示例:输入:image = [[1,1,1],[1,1,0],[1,0,1]]sr = 1, sc = 1, newColor = 2输出:[[2,2,2]

2020-08-12 15:12:59 566

原创 【算法】八皇后问题(递归)

思路分析:第一个皇后先放第一行第一列第二个皇后放在第二行第一列,然后判断是否冲突,如果冲突,继续放在第二列、第三列……依次把所有列都放完,直到找到一个合适的继续第三个皇后,还是第一列、第二列……直到第八个皇后也能放在一个不冲突的位置,算是找到一个正确解当得到一个正确解时,在栈回退到上一个栈时,就会开始回溯,即将第一个皇后放在第一列,其他皇后放在其他列的所有正确解然后继续第一个皇后放第二列,后面继续循环执行1,2,3,4的步骤在这里可以使用一个一维数组保存值即可,第n个数字即代表第n个皇后。(

2020-08-11 17:06:06 160

原创 【LeetCode】二叉树的最大深度(JavaScript)

题目:给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7],3/ \9 20/ \ 15 7(为20的两个节点)返回它的最大深度 3 。这种求深度的题目可以使用递归的方法求解。如果该节点为空,直接返回深度;如果不为空,递归其左右节点,再选择左右节点中最大的那个+1。时间复杂度O(N)。/** * Definition for a bi

2020-08-11 12:05:10 384 2

原创 【LeetCode】计数二进制子串(JavaScript)

题目:给定一个字符串 s,计算具有相同数量0和1的非空(连续)子字符串的数量,并且这些子字符串中的所有0和所有1都是组合在一起的。重复出现的子串要计算它们出现的次数。示例 1 :输入: “00110011”输出: 6解释: 有6个子串具有相同数量的连续1和0:“0011”,“01”,“1100”,“10”,“0011” 和 “01”。请注意,一些重复出现的子串要计算它们出现的次数。另外,“00110011”不是有效的子串,因为所有的0(和1)没有组合在一起。可以先总结规律,对于每一个相邻的

2020-08-10 10:24:54 265

原创 【LeetCode】环形链表(JavaScript)

题目:给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。示例 1:输入:head = [3,2,0,-4], pos = 1(pos不给我们的)输出:true解释:链表中有一个环,其尾部连接到第二个节点。可以使用双指针法,快慢指针,如果是环,用快指针去追慢指针,快指针一定会追到慢指针,原因:把慢跑者视作参考系,这样来思考,慢跑者站着不动,快跑者速度为1,就会发现一定

2020-08-09 11:56:02 164

原创 【LeetCode】x的平方根(JavaScript)

题目:实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。示例 1:输入: 4输出: 2示例 2:输入: 8输出: 2说明: 8 的平方根是 2.82842…,由于返回类型是整数,小数部分将被舍去。本题需要实现 sqrt 函数,肯定不能使用它!可以使用二分法,计算相乘的结果是否大于等于x,注意这里的 mid 要是右中间值(即+1)。时间复杂度O(logn),空间复杂度O(1)。v

2020-08-09 11:32:02 283

原创 【LeetCode】删除排序链表中的重复元素II(JavaScript)

题目:给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。示例 1:输入: 1->2->3->3->4->4->5输出: 1->2->5示例 2:输入: 1->1->1->2->3输出: 2->3看到示例2,会把开头的链表删除,所以需要一个 pre 在 head 前。使用双指针法,slow 和 fast 。/** * Definition for singly-linked

2020-08-08 10:46:20 262

原创 【LeetCode】删除排序链表中的重复元素

题目:给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例 1:输入: 1->1->2输出: 1->2示例 2:输入: 1->1->2->3->3输出: 1->2->3重复就将该位置的 next 指向 next.next,然后再接着比较,如果不重复,就移动目前指针的位置。var deleteDuplicates = function(head) { var p = head; while(p!=null &

2020-08-08 10:19:13 103

原创 【LeetCode】最后一个单词的长度(JavaScript)

题目:给定一个仅包含大小写字母和空格 ’ ’ 的字符串 s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。如果不存在最后一个单词,请返回 0 。说明:一个单词是指仅由字母组成、不包含任何空格字符的 最大子字符串。示例:输入: “Hello World”输出: 5不存在最后一个单词的情况即为 “s==null || s.length==0”因此,解题方法就是从后往前遍历,如果最后一个位置是空格,则跳过,否则一直遍历到是空格就停止。var lengt

2020-08-08 10:03:46 293

原创 【网易笔试题】最小数位和

题目:定义\mathit S(n)S(n),表示\mathit nn在十进制下的各位数字和。现在给定一个\mathit xx,请你求出最小正整数\mathit nn,满足x \leq S(n)x≤S(n).输入描述:第一行数据组数\mathit TT,对于每组数据,一行一个数字\mathit xx。1 \leq x \leq 10^5 , 1 \leq T \leq 101≤x≤105,1≤T≤10输出描述:对于每组数据,一行一个整数表示最小的\mathit nn。示例输入213

2020-08-07 17:11:47 862

原创 【LeetCode】颜色分类(JavaScript)

题目:给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。注意:不能使用代码库中的排序函数来解决这道题。示例:输入: [2,0,2,1,1,0]输出: [0,0,1,1,2,2]方法一:暴力法直接通过两个 for 循环遍历数组,从 nums[0] 开始,选出一个最小的并且 <nums[i] 的数与其交换。时间复杂度O(N^2)。var s

2020-08-07 14:12:54 426

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

题目:给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例 1:输入: (第一个树根节点1,左节点2,右节点3,第二个树同)[1,2,3], [1,2,3]输出: true本题可以使用递归,判断根节点是否相同,再依次判断左右节点是否相同。如果有一个树为空,则返回 false ,如果节点的值不相同,也返回 false 。如果递归到以该节点为根节点的两个树都为空,则两个树相同。时间复杂度O(min(m,n)),空间复杂度O(

2020-08-07 13:27:42 284

空空如也

空空如也

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

TA关注的人

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