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
  • 相关阅读:
    extjs grid renderer用法
    spket对Extjs4的支持方法 eclipse插件spket安装 extjs4 提示
    Delphi关于多线程同步的一些方法 zb
    指针学习(一) zb
    struts2中action实现ModelDriven后无法返回json的问题
    前端css编写规范
    javascript 原型链
    chrome bug
    浏览器缓存
    RegExp
  • 原文地址:https://www.cnblogs.com/zhuozige/p/12858741.html
Copyright © 2011-2022 走看看