Leetcode 77 Combinations
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.
Input: n = 4, k = 2
Output:
[
[2,4],
[3,4],
[2,3],
[1,2],
[1,3],
[1,4],
]
Input: n = 1, k = 1
Output: [[1]]
- Soruda bize n ve k değerleri veriliyor.Bizden istenen 1-n arasındaki sayıların k’li kombinasyonu.
- Bu soruda 90. sorudaki çözüm şeklini izleyebiliriz.
- Tek fark 90. soruda verilen listenin uzunluğu kadar bir kombinasyon ararken bu sefer k uzunluğunda bir kombinasyon arayacağız ve bulduğumuzda sonuç listesine ekleyeceğiz.
def combine(self, n: int, k: int) -> List[List[int]]:
def helper(nums, k, results, combination, start):
if len(combination) == k:
results.append(list(combination))
return
for i in range(start, len(nums)):
num = nums[i]
combination.append(num)
helper(nums, k, results, combination, i + 1)
combination.pop()
results = []
nums = [i for i in range(1, n + 1)]
helper(nums, k, results, [], 0)
return results