题解 | #没有重复项数字的全排列#
没有重复项数字的全排列
https://www.nowcoder.com/practice/4bcf3081067a4d028f95acee3ddcd2b1
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param num int整型vector * @return int整型vector<vector<>> */ vector<vector<int> > permute(vector<int>& num) { // write code here vector<int> tag(num.size(),0); vector<vector<int>> res; vector<int> current; for(int i = 0; i<num.size();i++){ deepSearch(num,tag,1,res,current,i); } return res; } void deepSearch(vector<int>& num,vector<int>& tag,int deep,vector<vector<int>>& res,vector<int> ¤t,int index){ if(deep==num.size()){ current.push_back(num[index]); res.push_back(current); current.pop_back(); return; } current.push_back(num[index]); tag[index]=1; // for(int n:current){ // cout<<n<<" "; // }cout<<endl; for(int i = 0; i<num.size();i++){ if(tag[i]!=1){ deepSearch(num,tag,deep+1,res,current,i); } } tag[index]=0; current.pop_back(); return; } };
写的很烂,用的是最慢的深度搜索,复习一下深搜