題目鏈結
給定乙個可包含重複數字的序列 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.length <= 8
-10 <= nums[i] <= 10
1.返回值和引數:輸入排列陣列和記錄陣列中的元素是否被使用的陣列
2.單層遞迴邏輯:遍歷陣列每次取乙個元素新增到path,但是要取沒有使用過的元素,且不是上一層用過的相同的數
3.終止條件:當path大小等於nums的大小則表示獲得了乙個結果,將其新增到結果集然後退出當前遞迴層
vectorint>> result;
vector<
int> path;
void
backtrace
(vector<
int>
& nums, vector<
bool
>
& used)
} vectorint>>
permuteunique
(vector<
int>
& nums)
全排列(無重複數)
題目鏈結 給定乙個 沒有重複 數字的序列,返回其所有可能的全排列。示例 輸入 1,2,3 輸出 1,2,3 1,3,2 2,1,3 2,3,1 3,1,2 3,2,1 1.返回值和引數 輸入排列陣列和記錄陣列中的元素是否被使用的陣列 2.單層遞迴邏輯 遍歷陣列每次取乙個元素新增到path,但是要取沒...
46 全排列(無重複數字)
這是無重複數字的全排列。注意遞迴函式中的迴圈 迴圈起始位置 和used陣列的使用 class solution void dfs int nums for int i 0 i還學習了交換法,不用申請used陣列。但是看了看,好像空間也沒節省多少啊。可能是因為為了轉換成list要將int轉換成inte...
DFS有重複數字的全排列
此文寫於2017 11 25 全排列就不說了,乙個next permutation就解決了。但是有重複的數字還能用基本的全排列嗎?答案顯然是不能的,我們需要一些語句來幫助我們避免重複。讓我們結合 來分析 有重複的全排列 include include using namespace std cons...