1.题目
47. 全排列 II - 力扣(LeetCode)https://leetcode.cn/problems/permutations-ii/description/
2.思路
注意剪枝的条件
3.代码
class Solution
{
vector<int> path;
vector<vector<int>> ret;
bool check[9];
public:
vector<vector<int>> permuteUnique(vector<int>& nums)
{
sort(nums.begin(),nums.end());
dfs(nums,0);
return ret;
}
void dfs(vector<int>& nums,int pos)
{
if(pos==nums.size())
{
ret.push_back(path);
return;
}
for(int i=0;i<nums.size();i++)
{
//不合法的条件
if(check[i]==true||(i!=0&&nums[i]==nums[i-1]&&check[i-1]==false))
continue;
path.push_back(nums[i]);
check[i]=true;
dfs(nums,pos+1);
check[i]=false;
path.pop_back();
}
}
};