題目鏈結
給定乙個 沒有重複 數字的序列,返回其所有可能的全排列。
示例:輸入: [1,2,3]
輸出:[
[1,2,3],
[1,3,2],
[2,1,3],
[2,3,1],
[3,1,2],
[3,2,1]
]1.返回值和引數:輸入排列陣列和記錄陣列中的元素是否被使用的陣列
2.單層遞迴邏輯:遍歷陣列每次取乙個元素新增到path,但是要取沒有使用過的元素
3.終止條件:當path大小等於nums的大小則表示獲得了乙個結果,將其新增到結果集然後退出當前遞迴層
vectorint>> result;
vector<
int> path;
void
backtrace
(vector<
int>
& nums, vector<
bool
>
& used)
} vectorint>>
permute
(vector<
int>
& nums)
46 全排列(無重複數字)
這是無重複數字的全排列。注意遞迴函式中的迴圈 迴圈起始位置 和used陣列的使用 class solution void dfs int nums for int i 0 i還學習了交換法,不用申請used陣列。但是看了看,好像空間也沒節省多少啊。可能是因為為了轉換成list要將int轉換成inte...
全排列(有重複數)
題目鏈結 給定乙個可包含重複數字的序列 nums 按任意順序 返回所有不重複的全排列。示例 1 輸入 nums 1,1,2 輸出 1,1,2 1,2,1 2,1,1 示例 2 輸入 nums 1,2,3 輸出 1,2,3 1,3,2 2,1,3 2,3,1 3,1,2 3,2,1 1 nums.le...
無重複的全排列
這是乙個無重複字串行的全排列,用的思想是遞迴,直接上 慢慢領會。include include include void swap char p1,char p2 void permutation char pstr,char pbegin else int main 大致的思路是依次將所有的字元放...