1、給出數字n,列出所有的排列組合的可能
【題目】:
【解法】: 用遞歸的方式
2、給出一個數組,列出所有可能的排列組合序列(不允許有重複)
【題目】:
【解法】:
3、給出數字n,k,返回所有排列組合序列中的第k個序列
【題目】:
【解法】:
【我自己的:出現了超時的錯誤】用了最簡單的遞歸,超時了。實際上就是題目1的做法,只不過算到第k個就停止。
【參考另一種解法】
不使用遞歸,而是看k與排列組合序列的關係,總結規律,其實我一開始也希望這麼做,但是總覺得要計算n的階乘,然後就放棄了,但其實,對於這道題來說,n最大是9,所以可以一開始先把階乘都算出來,存到數組裏面,方便後面的調用。這裏還有一個巧妙的地方,就是,提前把數字存到數組裏面,用一個刪除一個,這樣方便找剩下數字裏面的第n個數字。具體的代碼爲:
4、給出下一個全排列
【題目】
【解法】