首页 > 编程语言 > 详细

Leetcode练习(Python):回溯算法类:第77题:组合:给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合。

时间:2020-05-09 17:37:42      阅读:358      评论:0      收藏:0      [点我收藏+]
题目:
组合:给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合。
思路:
回溯算法的框架。
程序:
class Solution:
    def combine(self, n: int, k: int) -> List[List[int]]:
        def backtrack(inputData, k, auxiliary, result):
            if len(auxiliary) == k:
                result.append(auxiliary[:])
                return
            for index in range(len(inputData)):
                if len(auxiliary) >= 1:
                    if inputData[index] < auxiliary[-1]:
                        continue
                auxiliary.append(inputData[index])
                backtrack(inputData[: index] + inputData[index + 1 :], k, auxiliary, result)
                auxiliary.pop() 
        inputData = [index for index in range(1, n + 1)]
        result = []
        auxiliary = []
        backtrack(inputData, k, auxiliary, result)
        return result

Leetcode练习(Python):回溯算法类:第77题:组合:给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合。

原文:https://www.cnblogs.com/zhuozige/p/12858741.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!