File tree Expand file tree Collapse file tree 2 files changed +27
-0
lines changed Expand file tree Collapse file tree 2 files changed +27
-0
lines changed Original file line number Diff line number Diff line change @@ -74,6 +74,7 @@ Roadmap: https://neetcode.io/roadmap
74
74
| 46 | [ Permutations] ( https://leetcode.com/problems/permutations/ ) | Medium | [ ts] ( ./TypeScript/46.permutations.ts ) | Backtracking |
75
75
| 78 | [ Subsets] ( https://leetcode.com/problems/subsets/description/ ) | Medium | [ ts] ( ./TypeScript/78.subsets.ts ) | Backtracking |
76
76
| 39 | [ Combination Sum] ( https://leetcode.com/problems/combination-sum/description/ ) | Medium | [ ts] ( ./TypeScript/39.combination-sum.ts ) | Backtracking |
77
+ | 90 | [ Subsets II] ( https://leetcode.com/problems/subsets-ii/description/ ) | Medium | [ ts] ( ./TypeScript/90.subsets-ii.ts ) | Backtracking |
77
78
78
79
### Others
79
80
Original file line number Diff line number Diff line change
1
+ function subsetsWithDup ( nums : number [ ] ) : number [ ] [ ] {
2
+ const subsets = [ ] ;
3
+
4
+ function dfs ( index : number , subset : number [ ] ) {
5
+ if ( index === nums . length ) {
6
+ subsets . push ( subset . slice ( ) ) ;
7
+ return ;
8
+ }
9
+
10
+ subset . push ( nums [ index ] ) ;
11
+ dfs ( index + 1 , subset ) ;
12
+ subset . pop ( ) ;
13
+
14
+ while ( index + 1 < nums . length && nums [ index ] === nums [ index + 1 ] ) {
15
+ index += 1 ;
16
+ }
17
+ dfs ( index + 1 , subset ) ;
18
+ }
19
+
20
+ nums . sort ( ) ;
21
+ dfs ( 0 , [ ] ) ;
22
+
23
+ return subsets ;
24
+ }
25
+
26
+ console . log ( subsetsWithDup ( [ 1 , 2 , 2 ] ) ) ;
You can’t perform that action at this time.
0 commit comments