
保智商
每日一题,leetcode,保智商,抵抗每日机械需求造成的痴呆。
Eighteen Z
此人不懒,但还是什么都没写。
展开
-
JavaScript:leetcode_209. 长度最小的子数组(滑动窗口 + 双指针)
题目说明给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组,并返回其长度。如果不存在符合条件的连续子数组,返回 0。 示例:输入:s = 7, nums = [2,3,1,2,4,3]输出:2解释:子数组 [4,3] 是该条件下的长度最小的连续子数组。 进阶:如果你已经完成了 O(n) 时间复杂度的解法, 请尝试 O(n log n) 时间复杂度的解法。解题思路一第一种方法,比较常规,符合我们的脑回路。遍历数组,求遍原创 2020-06-29 00:32:16 · 464 阅读 · 2 评论 -
JavaScript:leetcode_16. 最接近的三数之和(排序+双指针)
题目说明给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。 示例:输入:nums = [-1,2,1,-4], target = 1输出:2解释:与 target 最接近的和是 2 (-1 + 2 + 1 = 2) 。 提示:3 <= nums.length <= 10^3-10^3 <= nums[i] <= 10^3原创 2020-06-24 16:27:44 · 332 阅读 · 0 评论 -
JavaScript:leetcode_739. 每日温度(栈)
题目说明根据每日 气温 列表,请重新生成一个列表,对应位置的输出是需要再等待多久温度才会升高超过该日的天数。如果之后都不会升高,请在该位置用 0 来代替。例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4, 2, 1, 1, 0, 0]。提示:气温 列表长度的范围是 [1, 30000]。每个气温的值的均为华氏度,都是在 [30, 100] 范围内的整数。暴力方法就不提了,直接循环判断即可。解原创 2020-06-11 11:27:28 · 384 阅读 · 0 评论 -
JavaScript:leetcode_9. 回文数(水题,三种方法)
题目说明判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。进阶:你能不将整数转为字符串来解决这个问题吗?解题思路一(字符串反转)第一反应数字转字符串,然后前原创 2020-06-10 10:42:50 · 236 阅读 · 0 评论 -
JavaScript:leetcode_面试题46. 把数字翻译成字符串(斐波那契)
题目说明给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。 示例 1:输入: 12258输出: 5解释: 12258有5种不同的翻译,分别是"bccfi", "bwfi", "bczi", "mcfi"和"mzi" 提示:0 <= num < 231解题思路一(斐波那契数列)我一般做原创 2020-06-09 10:49:48 · 220 阅读 · 0 评论 -
JavaScript:leetcode_面试题29. 顺时针打印矩阵(分层 + 递归)
题目说明输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。 示例 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]限制:0 <= matrix.length <= 1000 <= matrix[i].lengt原创 2020-06-05 10:11:42 · 242 阅读 · 0 评论 -
JavaScript:leetcode_238. 除自身以外数组的乘积(左右乘积列表)
题目说明给你一个长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。 示例:输入: [1,2,3,4]输出: [24,12,8,6] 提示:题目数据保证数组之中任意元素的全部前缀元素和后缀(甚至是整个数组)的乘积都在 32 位整数范围内。说明: 请不要使用除法,且在 O(n) 时间复杂度内完成此题。解题思路一(左右乘积列表)如果可以用除法,那我们只需原创 2020-06-04 09:47:19 · 285 阅读 · 0 评论 -
JavaScript:leetcode_101. 对称二叉树(递归)
题目说明给定一个二叉树,检查它是否是镜像对称的。 例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \3 4 4 3 但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3解题思路一递归加判断即可可能判断还是稍麻烦点的,哈哈。左节点,右节点都为null -------------------------原创 2020-06-01 13:27:44 · 201 阅读 · 0 评论 -
JavaScript:leetcode_1431. 拥有最多糖果的孩子
题目说明给你一个数组 candies 和一个整数 extraCandies ,其中 candies[i] 代表第 i 个孩子拥有的糖果数目。对每一个孩子,检查是否存在一种方案,将额外的 extraCandies 个糖果分配给孩子们之后,此孩子有 最多 的糖果。注意,允许有多个孩子同时拥有 最多 的糖果数目。 示例 1:输入:candies = [2,3,5,1,3], extraCandies = 3输出:[true,true,true,false,true] 解释:孩子 1 有 2原创 2020-06-01 11:19:42 · 173 阅读 · 0 评论 -
JavaScript:leetcode_198. 打家劫舍(动态规划)
题目说明你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1:输入: [1,2,3,1]输出: 4解释: 偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。 偷窃到的最高金额 = 1 + 3 = 4 。示例原创 2020-05-29 10:00:13 · 352 阅读 · 0 评论 -
JavaScript:leetcode_974. 和可被 K 整除的子数组(前序和 + 同余定理)
题目说明给定一个整数数组 A,返回其中元素之和可被 K 整除的(连续、非空)子数组的数目。 示例:输入:A = [4,5,0,-2,-3,1], K = 5输出:7解释:有 7 个子数组满足其元素之和可被 K = 5 整除:[4, 5, 0, -2, -3, 1], [5], [5, 0], [5, 0, -2, -3], [0], [0, -2, -3], [-2, -3] 提示:1 <= A.length <= 30000-10000 <= A[i]原创 2020-05-27 23:35:12 · 343 阅读 · 0 评论 -
JavaScript:leetcode_146. LRU缓存机制(vue的keep-live所使用的缓存机制)
题目说明运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。获取数据 get(key) - 如果关键字 (key) 存在于缓存中,则获取关键字的值(总是正数),否则返回 -1。写入数据 put(key, value) - 如果关键字已经存在,则变更其数据值;如果关键字不存在,则插入该组「关键字/值」。当缓存容量达到上限时,它应该在写入新数据之前删除最久未使用的数据值,从而为新的数据值留出空间。 进阶:原创 2020-05-26 12:44:27 · 304 阅读 · 2 评论 -
JavaScript:leetcode_287. 寻找重复数(二分法)
题目说明给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。示例 1:输入: [1,3,4,2,2]输出: 2示例 2:输入: [3,1,3,4,2]输出: 3说明:不能更改原数组(假设数组是只读的)。只能使用额外的 O(1) 的空间。时间复杂度小于 O(n2) 。数组中只有一个重复的数字,但它可能不止重复出现一次。解题思路一先放一种前端比较好理解的。原创 2020-05-26 12:09:08 · 282 阅读 · 0 评论 -
JavaScript:leetcode_105. 从前序与中序遍历序列构造二叉树(前序找根,中序分左右,递归)
题目说明根据一棵树的前序遍历与中序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树: 3 / \ 9 20 / \ 15 7解题思路一前序找根,中序分左右,递归即可。根为前序第一个值。let root = new TreeNode(preorder[0]);找到根在中序中的位置let roo原创 2020-05-22 09:59:26 · 269 阅读 · 0 评论 -
JavaScript:leetcode_5. 最长回文子串
题目说明给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"解题思路一遍历字符串,从i开始向左右扩展对比 i--, i++ 是否相同,过程求出最大值。以上仅检测奇数回文即:"cbabc"而不能检测cbbc对原字符串进行改造例如"cbbc" => "c#b#b#c"这样就可以以#为中心对比了。(奇数长原创 2020-05-21 14:58:25 · 205 阅读 · 0 评论 -
JavaScript:leecode_1371. 每个元音包含偶数次的最长子字符串(前缀和)
题目说明给你一个字符串 s ,请你返回满足以下条件的最长子字符串的长度:每个元音字母,即 'a','e','i','o','u' ,在子字符串中都恰好出现了偶数次。 示例 1:输入:s = "eleetminicoworoep"输出:13解释:最长子字符串是 "leetminicowor" ,它包含 e,i,o 各 2 个,以及 0 个 a,u 。示例 2:输入:s = "leetcodeisgreat"输出:5解释:最长子字符串是 "leetc" ,其中包含 2 个 e 。示原创 2020-05-21 11:10:17 · 261 阅读 · 0 评论 -
JavaScript:leetcode_680. 验证回文字符串 Ⅱ(双指针)
题目说明给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。示例 1:输入: "aba"输出: True示例 2:输入: "abca"输出: True解释: 你可以删除c字符。注意:字符串只包含从 a-z 的小写字母。字符串的最大长度是50000。解题思路一回文字符串,字符串正序反序都一样。同样也是对称的。正反指针,一个从头,一个从末尾,对比。找到不同的位置,去掉该位置的值。(可能为i,也可能为length-1-i)若两种情况中有一种是回文。那就返原创 2020-05-19 21:07:28 · 283 阅读 · 0 评论 -
JavaScript:leetcode_152. 乘积最大子数组(动态规划)
题目说明给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。示例 1:输入: [2,3,-2,4]输出: 6解释: 子数组 [2,3] 有最大乘积 6。示例 2:输入: [-2,0,-1]输出: 0解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。解题思路一该题与之前所写的560.和为K的子数组很相似,解法也都是一样的。依旧是对前缀进行操作。不同的是,我们这次不需要保留所有的结果,只需要保留本次原创 2020-05-18 11:24:22 · 267 阅读 · 0 评论 -
JavaScript:leetcode_210. 课程表 II
题目说明现在你总共有 n 门课需要选,记为 0 到 n-1。在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1]给定课程总量以及它们的先决条件,返回你为了学完所有课程所安排的学习顺序。可能会有多个正确的顺序,你只要返回一种就可以了。如果不可能完成所有课程,返回一个空数组。示例 1:输入: 2, [[1,0]] 输出: [0,1]解释: 总共有 2 门课程。要学习课程 1,你需要先完成课程 0。因此,正确的课原创 2020-05-17 13:26:06 · 312 阅读 · 0 评论 -
JavaScript:leetcode_560. 和为K的子数组(前序和)
题目说明给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数。示例 1 :输入:nums = [1,1,1], k = 2输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。说明 :数组的长度为 [1, 20,000]。数组中元素的范围是 [-1000, 1000] ,且整数 k 的范围是 [-1e7, 1e7]。解题思路一该题可以使用前序和进行计算和为k的个数,也可以用动态规划的思路来理解我们记录该元素之前的所有前缀和。然后利用上一次的原创 2020-05-15 11:16:31 · 357 阅读 · 0 评论 -
JavaScript:leetcode_136. 只出现一次的数字(异或运算)
题目说明给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4解题思路一主要看一下题目的要求,线性复杂度,不适用额外的空间。这里可以巧妙的使用异或运算符的特性,相同值的异或为0;所有的值,异或0都是本身。数组的所有项向异或之后的结果就是只出现一次的值我使用了re原创 2020-05-14 11:19:10 · 297 阅读 · 0 评论 -
JavaScript:leetcode_102. 二叉树的层序遍历(1. 层序遍历 + 深度遍历 2. 动态规划)
题目说明给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。 示例:二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [9,20], [15,7]]说明该题对于我来说一共有两种思路,四种方案。解题思路一 (层序+深度)该题如果去掉分组,就是一个层序遍历的问题。加上分组也不过是多深度遍历一遍代码实现原创 2020-05-14 00:50:17 · 381 阅读 · 0 评论 -
JavaScript:leetcode_155. 最小栈(辅助栈)
题目说明设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。push(x) —— 将元素 x 推入栈中。pop() —— 删除栈顶的元素。top() —— 获取栈顶元素。getMin() —— 检索栈中的最小元素。 示例:输入:["MinStack","push","push","push","getMin","pop","top","getMin"][[],[-2],[0],[-3],[],[],[],[]]输出:[null,null,nu原创 2020-05-12 17:48:44 · 241 阅读 · 0 评论 -
JavaScript:leetcode_50. Pow(x, n)(幂计算)
题目说明1.实现 pow(x, n) ,即计算 x 的 n 次幂函数。示例 1:输入: 2.00000, 10输出: 1024.00000示例 2:输入: 2.10000, 3输出: 9.26100示例 3:输入: 2.00000, -2输出: 0.25000解释: 2-2 = 1/22 = 1/4 = 0.25说明:-100.0 < x < 100.0n 是 32 位有符号整数,其数值范围是 [−231, 231 − 1] 。解题思路一计算X的n原创 2020-05-11 21:52:48 · 284 阅读 · 0 评论 -
JavaScript:leetcode_236. 二叉树的最近公共祖先(1. 层序遍历 + 二叉树任意遍历方法 2. 二叉树遍历 + 动态规划)
题目说明给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉树: root = [3,5,1,6,2,0,8,null,null,7,4]示例 1:输入: root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1输出: 3解释原创 2020-05-10 17:34:31 · 366 阅读 · 0 评论 -
JavaScript:leetcode_69. x 的平方根
题目说明实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。示例 1:输入: 4输出: 2示例 2:输入: 8输出: 2说明: 8 的平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。解题思路一求平方根,一种是利用我们Math.sqrt()直接求,这种就不说了。然后说我们手动求的方式,最简单的方式,就是for循环遍历从1到x,求出x/原创 2020-05-09 23:10:31 · 250 阅读 · 0 评论 -
JavaScript:leetcode_72. 编辑距离(动态规划,vue,react的类似diff算法)
题目说明给你两个单词 word1 和 word2,请你计算出将 word1 转换成 word2 所使用的最少操作数 。你可以对一个单词进行如下三种操作:插入一个字符删除一个字符替换一个字符 示例 1:输入:word1 = "horse", word2 = "ros"输出:3解释:horse -> rorse (将 'h' 替换为 'r')rorse ->...原创 2020-05-08 11:21:32 · 350 阅读 · 0 评论 -
JavaScript:leetcode_572. 另一个树的子树(广度遍历+深度遍历)
题目说明给定两个非空二叉树 s 和 t,检验 s 中是否包含和 t 具有相同结构和节点值的子树。s 的一个子树包括 s 的一个节点和这个节点的所有子孙。s 也可以看做它自身的一棵子树。示例 1:给定的树 s: 3 / \ 4 5 / \ 1 2给定的树 t: 4 / \ 1 2返回 true,因为 t 与 s 的一个子树拥有...原创 2020-05-07 14:11:21 · 227 阅读 · 0 评论 -
JavaScript:leetcode_983. 最低票价(动态规划)
题目说明在一个火车旅行很受欢迎的国度,你提前一年计划了一些火车旅行。在接下来的一年里,你要旅行的日子将以一个名为 days 的数组给出。每一项是一个从 1 到 365 的整数。火车票有三种不同的销售方式:一张为期一天的通行证售价为 costs[0] 美元;一张为期七天的通行证售价为 costs[1] 美元;一张为期三十天的通行证售价为 costs[2] 美元。通行证允许数天无限制...原创 2020-05-06 11:51:54 · 276 阅读 · 0 评论 -
JavaScript:leetcode_98. 验证二叉搜索树(递归)
题目说明给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 1:输入: 2 / \ 1 3输出: true示例 2:输入: 5 / \ 1 4 / \ 3 ...原创 2020-05-05 13:03:23 · 374 阅读 · 0 评论 -
JavaScript:leetcode_45. 跳跃游戏 II(贪心算法)
题目说明给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。你的目标是使用最少的跳跃次数到达数组的最后一个位置。示例:输入: [2,3,1,1,4]输出: 2解释: 跳到最后一个位置的最小跳跃数是 2。 从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。说明:假设你总是可以到...原创 2020-05-04 11:58:52 · 323 阅读 · 0 评论 -
JavaScript:leetcode_53. 最大子序和(贪心,分治)
题目说明将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4解题思路一其实就是归并排序的最后一步。合成两个有序序列。只不过用递归的方式去遍历链表。递归,把min(t1,t2),加入新链。若t1小,...原创 2020-05-03 13:49:11 · 208 阅读 · 0 评论 -
JavaScript:leetcode_3. 无重复字符的最长子串(滑动窗口)
题目说明给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字符的最长...原创 2020-05-02 11:56:35 · 546 阅读 · 0 评论 -
JavaScript:leetcode_21. 合并两个有序链表(递归归并)
题目说明将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4解题思路一其实就是归并排序的最后一步。合成两个有序序列。只不过用递归的方式去遍历链表。递归,把min(t1,t2),加入新链。若t1小,...原创 2020-05-01 15:09:18 · 304 阅读 · 0 评论 -
JavaScript:617. 合并二叉树(递归合并)
题目说明给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。示例 1:输入: Tree 1 Tree 2 ...原创 2020-04-30 23:32:16 · 591 阅读 · 0 评论 -
JavaScript:202. 快乐数(快慢指针)
题目说明编写一个算法来判断一个数 n 是不是快乐数。「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 可以变为 1,那么这个数就是快乐数。如果 n 是快乐数就返回 True ;不是,则返回 False 。 示例:输入:19输出:true解释:12 + 92 ...原创 2020-04-30 10:50:03 · 573 阅读 · 0 评论 -
一道题,带你搞定二分法! (JavaScript)
题目描述题目有点长,我就截个图展示了。解题思路这跟我之前做的那个旋转数组有相似之处,都是两个有序序列的组合。JavaScript:leetcode_33. 搜索旋转排序数组(二分法)看题目限制,肯定又是不能用遍历的O(n)。而且对获取mountain的值有100次的限制。那么自然就想到了二分法,结合题目,mountain长度为10000那么大概分十几次就完事儿了。基本不会把一百次用完...原创 2020-04-29 13:34:14 · 221 阅读 · 0 评论 -
JavaScript:面56 - I. 数组中数字出现的次数(分组异或)
题目说明一个整型数组 nums 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。 示例 1:输入:nums = [4,1,4,6]输出:[1,6] 或 [6,1]示例 2:输入:nums = [1,2,10,4,1,4,3,3]输出:[2,10] 或 [10,2] 限制:2 <= ...原创 2020-04-28 12:44:41 · 181 阅读 · 0 评论 -
JavaScript:leetcode_200. 岛屿数量 (DFS)
题目说明给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例 1:输入:11110110101100000000输出: 1示例 2:输入:11000110000010000011输出: 3解释...原创 2020-04-20 12:36:29 · 310 阅读 · 0 评论 -
JavaScript:leetcode_46. 全排列 (广度优先遍历)
题目描述给定一个 没有重复 数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]解题思路一广度优先遍历方法,递归解决如图所示, 我们需要3个信息:1. 和已确定序列,2. 剩余序列题解一:/** * @par...原创 2020-04-25 15:06:18 · 506 阅读 · 0 评论