本文主要是介绍leetcode 47:全排列 II,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
因为46题已做,本题只需要判断是否重复即可
void perM(std::vector<std::vector<int>> &a,std::vector<int> &b,std::vector<int>&nums,std::vector<int>&v,int number,int len){if(len+1==number){for(int i=0;i<a.size();i++){if(a[i]==v)return;}a.push_back(v);return;}else {for(int i=0;i<=len;i++) {if (b[i] == 0) {v.push_back(nums[i]);number++;b[i]=1;perM(a,b,nums,v,number,len);b[i]=0;number--;v.pop_back();}}}}std::vector<std::vector<int>> permuteUnique(std::vector<int>& nums) {std::vector<std::vector<int>> a;int len=nums.size();std::vector<int> ch;for(int i=0;i<nums.size();i++){ch.push_back(0);}std::vector<int> v;if(len==0)return a;elseperM(a,ch,nums,v,0,len-1);return a;
}
这篇关于leetcode 47:全排列 II的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!