Leetcode - 46. 全排列

Github地址

思路

分析題目
數學上的組合問題, 感覺題很簡單,對於我沒接觸過算法的人,無從下手 _
發現這道題的標籤是回溯, 然後查找了一些關於回溯問題的資料
初步對這道題有了思路, 就是個樹形結構, 遍歷每一條分支結構
利用遞歸求解(菜雞的我只知道遞歸就是自己調用自己,要確定好遞歸結束條件)
思路:
①在紙上畫出樹形結構
樹形結構圖
②確定遞歸參數
每次的參數都是當前字符串減去結點字符
③確定遞歸結束條件
當前字符串長度爲1

編寫

class Solution:
    def permute(self, nums: List[int]) -> List[List[int]]:
        rst = []
        def digui(s, cutNums):
            if(not cutNums):
                rst.append(s)
            for i in range(len(cutNums)):
                digui(s+[cutNums[i]], cutNums[:i]+cutNums[i+1:])
        digui([], nums)
        return rst

思考與學習

待複習

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章