Skip to content

Commit bc69882

Browse files
authored
feat: add javascript solution to lcci problem: No.08.04, No.08.07 (doocs#375)
* feat: add javascript solution to lcci problem: No.02.01.Remove Duplicate Node * feat: add javascript solution to lcci problem: No.02.02.Kth Node From End of List * feat: add javascript solution to lcci problem: No.02.03.Delete Middle Node * feat: add javascript solution to lcci problem: No.17.04.Missing Number * feat: add javascript solution to lcci problem: No.17.10.Find Majority Element * feat: add javascript solution to lcci problem: No.01.08.Zero Matrix * chore: add development environment start script * feat: add javascript solution to lcci problem: No.01.07.Rotate Matrix * feat: add javascript solution to lcci problem: No.08.04.Power Set * feat: add javascript solution to lcci problem: No.08.07.Permutation I
1 parent e93dd21 commit bc69882

File tree

6 files changed

+175
-0
lines changed

6 files changed

+175
-0
lines changed

lcci/08.04.Power Set/README.md

+27
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@
2929

3030
<!-- 这里可写通用的实现逻辑 -->
3131

32+
回溯法
33+
3234
<!-- tabs:start -->
3335

3436
### **Python3**
@@ -47,6 +49,31 @@
4749

4850
```
4951

52+
### **JavaScript**
53+
54+
```js
55+
/**
56+
* @param {number[]} nums
57+
* @return {number[][]}
58+
*/
59+
var subsets = function(nums) {
60+
let prev = [];
61+
let res = [];
62+
dfs(nums, 0, prev, res);
63+
return res;
64+
};
65+
66+
function dfs (nums, depth, prev, res) {
67+
res.push(prev.slice());
68+
for (let i = depth; i < nums.length; i++) {
69+
prev.push(nums[i]);
70+
depth++;
71+
dfs(nums, depth, prev, res);
72+
prev.pop();
73+
}
74+
}
75+
```
76+
5077
### **...**
5178

5279
```

lcci/08.04.Power Set/README_EN.md

+27
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@
4040

4141
## Solutions
4242

43+
Backtracking
44+
4345
<!-- tabs:start -->
4446

4547
### **Python3**
@@ -54,6 +56,31 @@
5456

5557
```
5658

59+
### **JavaScript**
60+
61+
```js
62+
/**
63+
* @param {number[]} nums
64+
* @return {number[][]}
65+
*/
66+
var subsets = function(nums) {
67+
let prev = [];
68+
let res = [];
69+
dfs(nums, 0, prev, res);
70+
return res;
71+
};
72+
73+
function dfs (nums, depth, prev, res) {
74+
res.push(prev.slice());
75+
for (let i = depth; i < nums.length; i++) {
76+
prev.push(nums[i]);
77+
depth++;
78+
dfs(nums, depth, prev, res);
79+
prev.pop();
80+
}
81+
}
82+
```
83+
5784
### **...**
5885

5986
```

lcci/08.04.Power Set/Solution.js

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
/**
2+
* @param {number[]} nums
3+
* @return {number[][]}
4+
*/
5+
var subsets = function(nums) {
6+
let prev = [];
7+
let res = [];
8+
dfs(nums, 0, prev, res);
9+
return res;
10+
};
11+
12+
function dfs (nums, depth, prev, res) {
13+
res.push(prev.slice());
14+
for (let i = depth; i < nums.length; i++) {
15+
prev.push(nums[i]);
16+
depth++;
17+
dfs(nums, depth, prev, res);
18+
prev.pop();
19+
}
20+
}

lcci/08.07.Permutation I/README.md

+36
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@
3232

3333
<!-- 这里可写通用的实现逻辑 -->
3434

35+
回溯法
36+
3537
<!-- tabs:start -->
3638

3739
### **Python3**
@@ -50,6 +52,40 @@
5052

5153
```
5254

55+
### **JavaSript**
56+
57+
```js
58+
/**
59+
* @param {string} S
60+
* @return {string[]}
61+
*/
62+
var permutation = function(S) {
63+
let res = [];
64+
let arr = [...S];
65+
let prev = [];
66+
let record = new Array(S.length).fill(false);
67+
dfs(arr, 0, prev, record, res);
68+
return res;
69+
};
70+
71+
function dfs(arr, depth, prev, record, res) {
72+
if (depth == arr.length) {
73+
res.push(prev.join(''));
74+
return;
75+
}
76+
for (let i = 0; i < arr.length; i++) {
77+
if (record[i]) {
78+
continue;
79+
}
80+
prev.push(arr[i]);
81+
record[i] = true;
82+
dfs(arr, depth + 1, prev, record, res);
83+
prev.pop();
84+
record[i] = false;
85+
}
86+
}
87+
```
88+
5389
### **...**
5490

5591
```

lcci/08.07.Permutation I/README_EN.md

+36
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@
3535

3636
## Solutions
3737

38+
Backtracking
39+
3840
<!-- tabs:start -->
3941

4042
### **Python3**
@@ -49,6 +51,40 @@
4951

5052
```
5153

54+
### **JavaSript**
55+
56+
```js
57+
/**
58+
* @param {string} S
59+
* @return {string[]}
60+
*/
61+
var permutation = function(S) {
62+
let res = [];
63+
let arr = [...S];
64+
let prev = [];
65+
let record = new Array(S.length).fill(false);
66+
dfs(arr, 0, prev, record, res);
67+
return res;
68+
};
69+
70+
function dfs(arr, depth, prev, record, res) {
71+
if (depth == arr.length) {
72+
res.push(prev.join(''));
73+
return;
74+
}
75+
for (let i = 0; i < arr.length; i++) {
76+
if (record[i]) {
77+
continue;
78+
}
79+
prev.push(arr[i]);
80+
record[i] = true;
81+
dfs(arr, depth + 1, prev, record, res);
82+
prev.pop();
83+
record[i] = false;
84+
}
85+
}
86+
```
87+
5288
### **...**
5389

5490
```

lcci/08.07.Permutation I/Solution.js

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/**
2+
* @param {string} S
3+
* @return {string[]}
4+
*/
5+
var permutation = function(S) {
6+
let res = [];
7+
let arr = [...S];
8+
let prev = [];
9+
let record = new Array(S.length).fill(false);
10+
dfs(arr, 0, prev, record, res);
11+
return res;
12+
};
13+
14+
function dfs(arr, depth, prev, record, res) {
15+
if (depth == arr.length) {
16+
res.push(prev.join(''));
17+
return;
18+
}
19+
for (let i = 0; i < arr.length; i++) {
20+
if (record[i]) {
21+
continue;
22+
}
23+
prev.push(arr[i]);
24+
record[i] = true;
25+
dfs(arr, depth + 1, prev, record, res);
26+
prev.pop();
27+
record[i] = false;
28+
}
29+
}

0 commit comments

Comments
 (0)