From 2b5b52081f0797672ed875318562bfa52b9187e9 Mon Sep 17 00:00:00 2001 From: "qingyi.liu" Date: Sun, 6 Jun 2021 22:39:18 +0800 Subject: [PATCH] =?UTF-8?q?update=2046.=E5=85=A8=E6=8E=92=E5=88=97=20JavaS?= =?UTF-8?q?cript=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- problems/0046.全排列.md | 40 +++++++++++++++++++++----------------- 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/problems/0046.全排列.md b/problems/0046.全排列.md index 06367851..30c3374b 100644 --- a/problems/0046.全排列.md +++ b/problems/0046.全排列.md @@ -244,31 +244,35 @@ func backtrack(nums,pathNums []int,used []bool){ } } +``` + Javascript: -```javascript +```js +/** + * @param {number[]} nums + * @return {number[][]} + */ var permute = function(nums) { - let result = [] - let path = [] - function backtracing(used) { - if(path.length === nums.length) { - result.push(path.slice(0)) - return + const res = [], path = []; + backtracking(nums, nums.length, []); + return res; + + function backtracking(n, k, used) { + if(path.length === k) { + res.push(Array.from(path)); + return; } - for(let i = 0; i < nums.length; i++) { - if(used[nums[i]]) { - continue - } - used[nums[i]] = true - path.push(nums[i]) - backtracing(used) - path.pop() - used[nums[i]] = false + for (let i = 0; i < k; i++ ) { + if(used[i]) continue; + path.push(n[i]); + used[i] = true; // 同支 + backtracking(n, k, used); + path.pop(); + used[i] = false; } } - backtracing([]) - return result }; ```