您的位置:首页 > 其它

Permutations II

2016-05-31 20:58 246 查看


class Solution {
public:
void swap(int& a, int&b)
{
int temp=a;
a=b;
b=temp;
}
bool ifduplicate(vector<int> nums, int n, int i)
{
while(n<i)
{
if(nums
==nums[i])
return false;
n++;
}
return true;
}
void permutation(vector<vector<int>>& res, vector<int>& nums, int n)
{
if(n==nums.size()-1)
{
res.push_back(nums);
return;
}

for(int i=n;i<nums.size();i++)
{
if(!ifduplicate(nums,n,i))
continue;
swap(nums[i],nums
);
permutation(res, nums, n+1);
swap(nums[i],nums
);
}

}
vector<vector<int>> permuteUnique(vector<int>& nums) {
vector<vector<int>> res;
if(nums.size()==0)
return res;
permutation(res,nums,0);
return res;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: