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
posted @ 2024-09-23 02:22  WindMay  阅读(1)  评论(0编辑  收藏  举报