47.全排列 II (Medium)*
题目描述*
给定一个可包含重复数字的序列,返回所有不重复的全排列。
示例*
输入: [1,1,2]
输出:
[
[1,1,2],
[1,2,1],
[2,1,1]
]
代码*
添加去重的步骤:
class Solution {
private:
vector<vector<int>> res;
public:
vector<vector<int>> permuteUnique(vector<int>& nums) {
sort(nums.begin(), nums.end());
backtrack(nums, 0);
return res;
}
void backtrack(vector<int> nums, int i) {
if(i == nums.size() - 1) {
res.push_back(nums);
return;
}
for(int j = i; j < nums.size(); j++) {
if(i != j && nums[i] == nums[j]) {
continue;
}
swap(nums[i], nums[j]);
backtrack(nums, i + 1);
}
}
};
最后更新: July 23, 2022