有哪些做ppt的网站,有了域名怎么制作网站吗,网络营销学什么,网站制作 毕业设计题目要求 思路 1.同【没有重复项的全排列-97】这个题一样#xff0c;都是递归的题#xff0c;区别在于这个可能会包含重复的数字#xff0c;因此#xff0c;不能只是简单的通过两个值是否相等然后用标志位标记#xff0c;而是新增了一个数组#xff0c;这个数组专门用于…题目要求 思路 1.同【没有重复项的全排列-97】这个题一样都是递归的题区别在于这个可能会包含重复的数字因此不能只是简单的通过两个值是否相等然后用标志位标记而是新增了一个数组这个数组专门用于存储该元素是否被使用。 2.需要特殊处理的是类似【121】的这种的结果可能会有两个这是因为两个1的下标不同这时我们可以对最初的元素进行排序如果某个元素是重复元素并且之前已经使用过就跳过该元素。
if(i 0 num[i-1] num[i] !vis[i-1])continue;代码实现
class Solution {
public:vectorvectorint res;vectorvectorint permuteUnique(vectorint num) {sort(num.begin(), num.end());//标记vectorint vis(num.size(), 0);vectorint n;per(num, n, vis);return res;}void per(vectorint num, vectorint n, vectorint vis){if(num.size() n.size()){res.push_back(n);return;}for(int i 0; i num.size(); i){if(vis[i])continue;if(i 0 num[i-1] num[i] !vis[i-1])continue;vis[i] 1;n.push_back(num[i]);per(num, n, vis);vis[i] 0;n.pop_back();}}
};