打卡群刷题总结0723——组合

2020-07-28 11:19:31 浏览数 (1)

题目:77. 组合

链接:https://leetcode-cn.com/problems/combinations

给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合。 示例: 输入: n = 4, k = 2 输出: [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4], ]

解题:

1、DFS回溯。

代码:

代码语言:javascript复制
class Solution(object):
    def _combine_helper(self, start, k, current):
        if k == 0:
            self.res.append(current)
            return 
        for i in range(start, len(self.num) - k   1):
            current2 = copy.copy(current)
            current2.append(self.num[i])
            self._combine_helper(i   1, k - 1, current2)

    def combine(self, n, k):
        """
        :type n: int
        :type k: int
        :rtype: List[List[int]]
        """
        self.num = list(range(1, n   1))
        self.res = []
        self._combine_helper(0, k, [])
        return self.res

PS:刷了打卡群的题,再刷另一道题,并且总结,确实耗费很多时间。如果时间不够,以后的更新会总结打卡群的题。

PPS:还是得日更呀,总结一下总是好的。

0 人点赞