-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCombinations.py
More file actions
48 lines (45 loc) · 944 Bytes
/
Combinations.py
File metadata and controls
48 lines (45 loc) · 944 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# https://leetcode.com/problems/combinations/
# Hak Soo Kim
# 4/1/2022
class Solution(object):
def combine(self, n, k):
arr = [n for n in range(1, n + 1)]
ans = []
self.backtracking(ans, [], arr, k)
return (ans)
"""
:type n: int
:type k: int
:rtype: List[List[int]]
"""
def backtracking(self, ans, path, arr, k):
if (k == len(path)):
ans.append(path)
return
for i in range(len(arr)):
self.backtracking(ans, path + [arr[i]], arr[i + 1:], k)
# Given two integers n and k, return all possible combinations of k numbers out of the range [1, n].
#
# You may return the answer in any order.
#
# Example 1:
#
# Input: n = 4, k = 2
# Output:
# [
# [2,4],
# [3,4],
# [2,3],
# [1,2],
# [1,3],
# [1,4],
# ]
# Example 2:
#
# Input: n = 1, k = 1
# Output: [[1]]
#
# Constraints:
#
# 1 <= n <= 20
# 1 <= k <= n