Lintcode15 Permutations solution 題解

【題目描述】

Given a list of numbers, return all possible permutations.

Notice:You can assume that there is no duplicate numbers in the list.

給定一個數字列表,返回其所有可能的排列。

注意:你可以假設沒有重複數字。

【題目鏈接】

http://www.lintcode.com/en/problem/permutations/

【題目解析】

遇到這種問題,很顯然,第一個想法我們首先回去想到DFS,遞歸求解,對於數組中的每一個元素,找到以他爲首節點的Permutations,這就要求在遞歸中,每次都要從數組的第一個元素開始遍歷,這樣,,就引入了另外一個問題,我們會對於同一元素訪問多次,這就不是我們想要的答案了,所以我們引入了一個bool類型的數組,用來記錄哪個元素被遍歷了(通過下標找出對應).在對於每一個Permutation進行求解中,如果訪問了這個元素,我們將它對應下表的bool數組中的值置爲true,訪問結束後,我們再置爲false.

時間複雜度分析: 這道題同Combination,所以對於這道題的解答,時間複雜度同樣是

O(n!)

【答案鏈接】

https://www.jiuzhang.com/solutions/permutations/


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