Given a collection of numbers that might contain duplicates, return all possible unique permutations.
For example,[1,1,2] have the following unique permutations:[1,1,2], [1,2,1], and [2,1,1].
void visit(vector<int> &num, int n, int pos){	if (n == pos)	{		for (int i = 0; i < num.size(); i++)		{			cout << num[i] << " ";		}		cout << endl;		return;	}	for (int i = pos; i < n; i++)	{		if (num[i] == num[pos] && i != pos)		{			continue;		}		swap(num[i], num[pos]);		visit(num, n, pos+1);		swap(num[i], num[pos]);	}}void fun(vector<int> &num){	int n = num.size();	sort(num.begin(), num.end());	visit(num, n, 0);}
新闻热点
疑难解答