File tree 1 file changed +43
-26
lines changed
1 file changed +43
-26
lines changed Original file line number Diff line number Diff line change 5
5
*/
6
6
7
7
// @lc code=start
8
+ // function permute(nums: number[]): number[][] {
9
+ // const result: number[][] = []
10
+ // // 路径
11
+ // // const track
12
+ // // 选择列表
13
+ // // const list
14
+ // function backtrack(track: number[], list: number[]) {
15
+ // // 终结条件
16
+ // if (list.length === 0) {
17
+ // result.push([...track])
18
+ // return
19
+ // }
20
+ // // 选择列表
21
+ // for (let i = 0; i < list.length; i++) {
22
+ // if (track.indexOf(list[i]) > -1) {
23
+ // /** 如果已经选择过 */
24
+ // continue
25
+ // }
26
+ // const ele = list[i]
27
+ // track.push(ele)
28
+ // list.splice(i, 1)
29
+ // backtrack(track, list)
30
+ // track.pop()
31
+ // list.splice(i, 0, ele)
32
+ // }
33
+ // }
34
+
35
+ // backtrack([], nums)
36
+ // return result
37
+ // };
38
+ // 记录选择列表
8
39
function permute ( nums : number [ ] ) : number [ ] [ ] {
9
- const result : number [ ] [ ] = [ ]
10
- // 路径
11
- // const track
12
- // 选择列表
13
- // const list
14
- function backtrack ( track : number [ ] , list : number [ ] ) {
15
- // 终结条件
16
- if ( list . length === 0 ) {
17
- result . push ( [ ...track ] )
18
- return
19
- }
20
- // 选择列表
21
- for ( let i = 0 ; i < list . length ; i ++ ) {
22
- if ( track . indexOf ( list [ i ] ) > - 1 ) {
23
- /** 如果已经选择过 */
24
- continue
25
- }
26
- const ele = list [ i ]
27
- track . push ( ele )
28
- list . splice ( i , 1 )
29
- backtrack ( track , list )
30
- track . pop ( )
31
- list . splice ( i , 0 , ele )
40
+ const res = [ ]
41
+ function backtrack ( track : number [ ] , options : number [ ] ) {
42
+ if ( options . length === 0 ) {
43
+ res . push ( track )
32
44
}
45
+ options . map ( o => {
46
+ backtrack ( track . concat ( o ) , options . filter ( i => i !== o ) )
47
+ } )
33
48
}
34
49
35
50
backtrack ( [ ] , nums )
36
- return result
37
- } ;
51
+ return res
52
+ }
53
+
38
54
// @lc code=end
39
55
40
56
41
- const nums = [ 1 , 2 , 3 ]
57
+ // const nums = [1, 2, 3]
58
+ const nums = [ 0 ]
42
59
console . log ( permute ( nums ) )
You can’t perform that action at this time.
0 commit comments