Study Plan For Algorithms - Part39
1. 组合
给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。
class Solution:
def combine(self, n: int, k: int) -> List[List[int]]:
def backtrack(start, path):
if len(path) == k:
result.append(path[:])
return
for i in range(start, n + 1):
path.append(i)
backtrack(i + 1, path)
path.pop()
result = []
backtrack(1, [])
return result
2. 子集
给定一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的
子集(幂集)。
class Solution:
def subsets(self, nums: List[int]) -> List[List[int]]:
result = []
path = []
def backtracking(nums, startIndex):
result.append(path[:])
for i in range(startIndex, len(nums)):
path.append(nums[i])
backtracking(nums, i + 1)
path.pop()
backtracking(nums, 0)
return result
本文来自博客园,作者:WindMay,转载请注明原文链接:https://www.cnblogs.com/stephenxiong001/p/18426201