全排列(無重複數)

2021-10-21 10:18:43 字數 614 閱讀 4609

題目鏈結

給定乙個 沒有重複 數字的序列,返回其所有可能的全排列。

示例:輸入: [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 大致的思路是依次將所有的字元放...