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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



猜您在找 Leetcode練習(Python):回溯算法類:第22題:括號生成:數字 n 代表生成括號的對數,請你設計一個函數,用於能夠生成所有可能的並且 有效的 括號組合。 Leetcode練習(Python):回溯算法類:第46題:全排列:給定一個 沒有重復 數字的序列,返回其所有可能的全排列。 Leetcode練習(Python):回溯算法類:第47題:全排列 II:給定一個可包含重復數字的序列,返回所有不重復的全排列。 Leetcode刷題筆記(Python 找出所有相加之和為n的k個組合,組合中只允許含有1-9的正整數,並且每種組合中不存在重復的數字。) 找出所有相加之和為 n 的 k 個數的組合。組合中只允許含有 1 - 9 的正整數,並且每種組合中不存在重復的數字。(回溯思想) Leetcode練習(Python):回溯算法類:第131題:分割回文串:給定一個字符串 s,將 s 分割成一些子串,使每個子串都是回文串。 返回 s 所有可能的分割方案。 Leetcode練習(Python):第441題:排列硬幣:你總共有 n 枚硬幣,你需要將它們擺成一個階梯形狀,第 k 行就必須正好有 k 枚硬幣。 給定一個數字 n,找出可形成完整階梯行的總行數。 n 是一個非負整數,並且在32位有符號整型的范圍內。 Leetcode練習(Python):數組類:第128題:給定一個未排序的整數數組,找出最長連續序列的長度。 要求算法的時間復雜度為 O(n)。 Leetcode練習(Python):數組類:第73題:給定一個 m x n 的矩陣,如果一個元素為 0,則將其所在行和列的所有元素都設為 0。請使用原地算法。 Leetcode練習(Python):字符串類:第17題:電話號碼的字母組合:給定一個僅包含數字 2-9 的字符串,返回所有它能表示的字母組合。 給出數字到字母的映射如下(與電話按鍵相同)。注意 1 不對應任何字母。
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM