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

    题目:
    组合:给定两个整数 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
  • 相关阅读:
    带CheckBox的dojo Tree简单实现,并实现级联选取
    dojox.grid.EnhancedGrid
    Java内存模型及GC原理
    团队任务(第三次)
    团队任务二
    团队任务(一)
    词频统计及其效能分析
    贪吃蛇
    第一课
    软工七组团队2-1作业
  • 原文地址:https://www.cnblogs.com/zhuozige/p/12858741.html
Copyright © 2011-2022 走看看