Skip to content

Commit d57461f

Browse files
authored
feat: add javascript solution to lc problem: No.0046.Permutations (doocs#415)
1 parent e9ac864 commit d57461f

File tree

3 files changed

+91
-0
lines changed

3 files changed

+91
-0
lines changed

solution/0000-0099/0046.Permutations/README.md

+32
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,38 @@ class Solution {
138138
}
139139
```
140140

141+
### **JavaScript**
142+
143+
```js
144+
/**
145+
* @param {number[]} nums
146+
* @return {number[][]}
147+
*/
148+
var permute = function(nums) {
149+
let res = [];
150+
let solution = [];
151+
let record = new Array(nums.length).fill(false);
152+
dfs(nums, 0, record, solution, res);
153+
return res;
154+
};
155+
156+
function dfs (nums, depth, record, solution, res) {
157+
if (depth == nums.length) {
158+
res.push(solution.slice());
159+
return;
160+
}
161+
for (let i = 0; i < nums.length; i++) {
162+
if (!record[i]) {
163+
solution.push(nums[i]);
164+
record[i] = true;
165+
dfs(nums, depth + 1, record, solution, res);
166+
solution.pop();
167+
record[i] = false;
168+
}
169+
}
170+
}
171+
```
172+
141173
### **...**
142174

143175
```

solution/0000-0099/0046.Permutations/README_EN.md

+32
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,38 @@ class Solution {
112112
}
113113
```
114114

115+
### **JavaScript**
116+
117+
```js
118+
/**
119+
* @param {number[]} nums
120+
* @return {number[][]}
121+
*/
122+
var permute = function(nums) {
123+
let res = [];
124+
let solution = [];
125+
let record = new Array(nums.length).fill(false);
126+
dfs(nums, 0, record, solution, res);
127+
return res;
128+
};
129+
130+
function dfs (nums, depth, record, solution, res) {
131+
if (depth == nums.length) {
132+
res.push(solution.slice());
133+
return;
134+
}
135+
for (let i = 0; i < nums.length; i++) {
136+
if (!record[i]) {
137+
solution.push(nums[i]);
138+
record[i] = true;
139+
dfs(nums, depth + 1, record, solution, res);
140+
solution.pop();
141+
record[i] = false;
142+
}
143+
}
144+
}
145+
```
146+
115147
### **...**
116148

117149
```
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
/**
2+
* @param {number[]} nums
3+
* @return {number[][]}
4+
*/
5+
var permute = function(nums) {
6+
let res = [];
7+
let solution = [];
8+
let record = new Array(nums.length).fill(false);
9+
dfs(nums, 0, record, solution, res);
10+
return res;
11+
};
12+
13+
function dfs (nums, depth, record, solution, res) {
14+
if (depth == nums.length) {
15+
res.push(solution.slice());
16+
return;
17+
}
18+
for (let i = 0; i < nums.length; i++) {
19+
if (!record[i]) {
20+
solution.push(nums[i]);
21+
record[i] = true;
22+
dfs(nums, depth + 1, record, solution, res);
23+
solution.pop();
24+
record[i] = false;
25+
}
26+
}
27+
}

0 commit comments

Comments
 (0)