File tree 2 files changed +60
-0
lines changed
2 files changed +60
-0
lines changed Original file line number Diff line number Diff line change
1
+ /**
2
+ * @param {number[] } nums
3
+ * @return {number[][] }
4
+ */
5
+ let subsets = function ( nums ) {
6
+ let res = [ ]
7
+ let n = nums . length
8
+ if ( n === 0 ) {
9
+ return res
10
+ }
11
+
12
+ let helper = ( start , prev , targetLength ) => {
13
+ if ( start > n ) {
14
+ return
15
+ }
16
+ if ( prev . length === targetLength ) {
17
+ res . push ( prev )
18
+ return
19
+ }
20
+
21
+ for ( let i = start ; i < n ; i ++ ) {
22
+ let cur = nums [ i ]
23
+ helper ( i + 1 , prev . concat ( cur ) , targetLength )
24
+ }
25
+ }
26
+
27
+ for ( let j = 1 ; j <= nums . length ; j ++ ) {
28
+ helper ( 0 , [ ] , j )
29
+ }
30
+
31
+ return [ [ ] , ...res ]
32
+ }
Original file line number Diff line number Diff line change
1
+ /**
2
+ * @param {number } n
3
+ * @param {number } k
4
+ * @return {number[][] }
5
+ */
6
+ let combine = function ( n , k ) {
7
+ let ret = [ ]
8
+
9
+ let helper = ( start , prev ) => {
10
+ let len = prev . length
11
+ if ( len === k ) {
12
+ ret . push ( prev )
13
+ return
14
+ }
15
+
16
+ if ( start > n ) {
17
+ return
18
+ }
19
+
20
+ for ( let i = start ; i <= n ; i ++ ) {
21
+ helper ( i + 1 , prev . concat ( i ) )
22
+ }
23
+ }
24
+ helper ( 1 , [ ] )
25
+ return ret
26
+ }
27
+
28
+ console . log ( combine ( 4 , 2 ) )
You can’t perform that action at this time.
0 commit comments