class Solution {
public:
/*
* @param : A list of integers
* @return: A list of unique permutations
*/
vector<vector<int>> permuteUnique(vector<int> &nums) {
// write your code here
vector<vector<int>> result;
if (nums.empty())
{
result.push_back(nums);
return result;
}
sort(nums.begin(),nums.end());
perm(nums,0,result);
return result;
}
void perm(vector<int> nums,int start,vector<vector<int>> &result)
{
if (start==nums.size()-1)
{
result.push_back(nums);
}
for (int i=start;i<(int)nums.size();i++)
{
if (i==start||nums[i]!=nums[start])
{
swap(nums[start],nums[i]);//nums[start]爲上次循環的nums[i];
perm(nums,start+1,result); //start值自己不變;
}
}
}
};