文巾解题 46. 全排列
生活随笔
收集整理的這篇文章主要介紹了
文巾解题 46. 全排列
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1 題目描述
2 解題思路?:回溯
- 如果解決一個問題有多個步驟,每一個步驟有多種方法,題目又要我們找出所有的方法,可以使用回溯算法;
- 回溯算法是在一棵樹上的 深度優先遍歷(因為要找所有的解,所以需要遍歷);
- 組合問題,相對于排列問題而言,不計較一個組合內元素的順序性(即 [1, 2, 3] 與 [1, 3, 2] 認為是同一個組合),因此很多時候需要按某種順序展開搜索,這樣才能做到不重不漏。
這里dfs(lst,tmp)的意思是,nums-tmp的部分已經排列成了lst,我們接下來需要排列tmp中的元素,來構造一種nums中元素的排列方法
我們在tmp中隨機選擇一個元素,他就是我們lst中的下一個元素。
當tmp只有一個元素的時候,毫無疑問它只有一種排列方法了,此時一種全排列結果就出來了,放入ret數組中。
總結
以上是生活随笔為你收集整理的文巾解题 46. 全排列的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 文巾解题 77. 组合
- 下一篇: 文巾解题 784. 字母大小写全排列