Skip to content

feat: add javascript solution to lcci problem: No.08.08.Permutation II #376

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 21 commits into from
May 10, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
b852482
feat: add javascript solution to lcci problem: No.02.01.Remove Duplic…
zhaocchen May 1, 2021
3d75983
Merge remote-tracking branch 'upstream/main' into main
zhaocchen May 1, 2021
0c068a4
Merge remote-tracking branch 'upstream/main' into main
zhaocchen May 1, 2021
98053e2
feat: add javascript solution to lcci problem: No.02.02.Kth Node From…
zhaocchen May 1, 2021
9ac94bf
Merge remote-tracking branch 'upstream/main' into main
zhaocchen May 1, 2021
413ccab
feat: add javascript solution to lcci problem: No.02.03.Delete Middle…
zhaocchen May 1, 2021
e3db7cd
Merge remote-tracking branch 'upstream/main' into main
zhaocchen May 2, 2021
a0688b8
feat: add javascript solution to lcci problem: No.17.04.Missing Number
zhaocchen May 2, 2021
251f6b3
Merge remote-tracking branch 'upstream/main' into main
zhaocchen May 6, 2021
bda8450
feat: add javascript solution to lcci problem: No.17.10.Find Majority…
zhaocchen May 6, 2021
6c8c234
Merge remote-tracking branch 'upstream/main' into main
zhaocchen May 6, 2021
0276f82
feat: add javascript solution to lcci problem: No.01.08.Zero Matrix
zhaocchen May 6, 2021
5918a79
chore: add development environment start script
zhaocchen May 6, 2021
4e8287c
Merge remote-tracking branch 'upstream/main' into main
zhaocchen May 7, 2021
486ccb9
feat: add javascript solution to lcci problem: No.01.07.Rotate Matrix
zhaocchen May 7, 2021
7a77e43
Merge remote-tracking branch 'upstream/main' into main
zhaocchen May 9, 2021
5ca6c50
feat: add javascript solution to lcci problem: No.08.04.Power Set
zhaocchen May 9, 2021
3762742
Merge branch 'main' of https://github.com/zhaocchen/doocs_leetcode in…
zhaocchen May 9, 2021
5c42218
feat: add javascript solution to lcci problem: No.08.07.Permutation I
zhaocchen May 9, 2021
5932609
feat: add javascript solution to lcci problem: No.08.08.Permutation II
zhaocchen May 10, 2021
b3dd1bd
Merge remote-tracking branch 'upstream/main' into main
zhaocchen May 10, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 40 additions & 0 deletions lcci/08.08.Permutation II/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,46 @@

```

### **JavaScript**

```js
/**
* @param {string} S
* @return {string[]}
*/
var permutation = function(S) {
let res = [];
let arr = [...S];
arr.sort();
let prev = [];
let record = new Array(S.length).fill(false);
dfs(arr, 0, prev, record, res);
return res;
};

function dfs(arr, depth, prev, record, res) {
if (depth == arr.length) {
res.push(prev.join(''));
return;
}
for (let i = 0; i < arr.length; i++) {
if (record[i]) {
continue;
}
// 剪枝
if (i > 0 && arr[i] == arr[i - 1] && record[i - 1]) {
continue;
}
prev.push(arr[i]);
record[i] = true;
dfs(arr, depth + 1, prev, record, res);
// 回溯
prev.pop();
record[i] = false;
}
}
```

### **...**

```
Expand Down
40 changes: 40 additions & 0 deletions lcci/08.08.Permutation II/README_EN.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,46 @@

```

### **JavaScript**

```js
/**
* @param {string} S
* @return {string[]}
*/
var permutation = function(S) {
let res = [];
let arr = [...S];
arr.sort();
let prev = [];
let record = new Array(S.length).fill(false);
dfs(arr, 0, prev, record, res);
return res;
};

function dfs(arr, depth, prev, record, res) {
if (depth == arr.length) {
res.push(prev.join(''));
return;
}
for (let i = 0; i < arr.length; i++) {
if (record[i]) {
continue;
}
// 剪枝
if (i > 0 && arr[i] == arr[i - 1] && record[i - 1]) {
continue;
}
prev.push(arr[i]);
record[i] = true;
dfs(arr, depth + 1, prev, record, res);
// 回溯
prev.pop();
record[i] = false;
}
}
```

### **...**

```
Expand Down
35 changes: 35 additions & 0 deletions lcci/08.08.Permutation II/Solution.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
/**
* @param {string} S
* @return {string[]}
*/
var permutation = function(S) {
let res = [];
let arr = [...S];
arr.sort();
let prev = [];
let record = new Array(S.length).fill(false);
dfs(arr, 0, prev, record, res);
return res;
};

function dfs(arr, depth, prev, record, res) {
if (depth == arr.length) {
res.push(prev.join(''));
return;
}
for (let i = 0; i < arr.length; i++) {
if (record[i]) {
continue;
}
// 剪枝
if (i > 0 && arr[i] == arr[i - 1] && record[i - 1]) {
continue;
}
prev.push(arr[i]);
record[i] = true;
dfs(arr, depth + 1, prev, record, res);
// 回溯
prev.pop();
record[i] = false;
}
}