leetcode
leetcode copied to clipboard
🐌🐌🐌 使用 JavaScript 记录算法题解,🚦 通过 Issues 标签进行分类,方便后续的复习
给定一个数组 `candidates` 和一个目标数 `target` ,找出 `candidates` 中所有可以使数字和为 `target` 的组合。 `candidates` 中的每个数字在每个组合中只能使用一次。 说明: - 所有数字(包括目标数)都是正整数。 - 解集不能包含重复的组合。 示例 1: ``` 输入: candidates = [10,1,2,7,6,1,5], target = 8, 所求解集为: [ [1, 7],...
给定一个二叉树的根节点 root ,返回它的 **中序** 遍历。 示例 1:  ``` 输入:root = [1,null,2,3] 输出:[1,3,2] ``` 示例 2: ``` 输入:root = [] 输出:[] ``` 示例 3: ``` 输入:root = [1] 输出:[1] ```...
有一堆石头,每块石头的重量都是正整数。 每一回合,从中选出两块 **最重的** 石头,然后将它们一起粉碎。假设石头的重量分别为 `x` 和 `y`,且 `x b - a) while (stones.length > 1) { let x = stones.shift() let y = stones.shift() let next = x - y...
给定一个数组 `nums`,编写一个函数将所有 `0` 移动到数组的末尾,同时保持非零元素的相对顺序。 示例: ``` 输入: [0,1,0,3,12] 输出: [1,3,12,0,0] ``` 说明: 必须在原数组上操作,不能拷贝额外的数组。 尽量减少操作次数。 > 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/move-zeroes 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 --- - **普通循环** > **倒序循环**确保删除元素之后不会改变后面的索引, 然后同时往数组里面`push(0)`保持数组长度 ```js const moveZeroes = nums =>...
给定一个**无重复元素**的数组 `candidates` 和一个目标数 `target` ,找出 `candidates` 中所有可以使数字和为 `target` 的组合。 `candidates` 中的数字可以无限制重复被选取。 说明: - 所有数字(包括 `target`)都是正整数。 - 解集不能包含重复的组合。 示例 1: ``` 输入:candidates = [2,3,6,7], target = 7, 所求解集为: [ [7], [2,2,3]...
给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合。 示例: ``` 输入: n = 4, k = 2 输出: [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4], ] ``` >...
给定一个 N 叉树,返回其节点值的前序遍历。 例如,给定一个 `3叉树` :  返回其前序遍历: `[1,3,5,6,2,4]`。 说明: 递归法很简单,你可以使用迭代法完成此题吗? > 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/n-ary-tree-preorder-traversal 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 --- - **递归遍历** ```js const preorder = root => { if (!root) return [] const...
给你二叉树的根节点 root ,返回它节点值的 前序 遍历。 示例 1:  ``` 输入:root = [1,null,2,3] 输出:[1,2,3] ``` 示例 2: ``` 输入:root = [] 输出:[] ``` 示例 3: ``` 输入:root = [1] 输出:[1] ```...
给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。  示例 1: ``` 输入:grid = [[1,3,1],[1,5,1],[4,2,1]] 输出:7 解释:因为路径 1→3→1→1→1 的总和最小。 ``` 示例 2: ``` 输入:grid = [[1,2,3],[4,5,6]] 输出:12 ``` 提示: -...
给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。 相邻的结点 在这里指的是 `下标` 与 `上一层结点下标` 相同或者等于 `上一层结点下标 + 1` 的两个结点。 例如,给定三角形: ``` [ [2], [3,4], [6,5,7], [4,1,8,3] ] ``` 自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。...