47. Permutations II

ss
Jan 22, 2022

--

請參考

https://www.geeksforgeeks.org/write-a-c-program-to-print-all-permutations-of-a-given-string/

以及 46題Permutations

這邊我只想的到用set去避免重複的可能

算是比較爛的解法

class Solution {
public:
void do_premute(vector<int> &nums, set<vector<int>> &res, int pos){
if(pos == nums.size() - 1){
res.insert(nums);
return;
}
for(int i = pos; i < nums.size();i++){
if(i != pos&& nums[i] == nums[pos]) continue;
swap(nums[i], nums[pos]);
do_premute(nums, res, pos + 1);
swap(nums[i], nums[pos]);

}
}
vector<vector<int>> permuteUnique(vector<int>& nums) {
set<vector<int>> res;
do_premute(nums, res, 0);
vector<vector<int>> ans(res.begin(), res.end());
return ans;

}
};

--

--

ss
ss

No responses yet