Permutations
Q:全排列问题。DFS。
vector<vector<int> > permute(vector<int> &num) { // Start typing your C/C++ solution below // DO NOT write int main() function vector<vector<int> > result; vector<int> set; vector<bool> bvisited(num.size()); permute_aux(num,bvisited,set,result); return result; } void permute_aux(vector<int>& num, vector<bool>& bvisited,vector<int>& set,vector<vector<int> >& result) { if(set.size()==num.size()) { result.push_back(set); return; } for(int i=0;i<num.size();i++) //注意因为是全排列,要从0开始,挑选还没有访问过的数字 { if(!bvisited[i]) { set.push_back(num[i]); bvisited[i] = true; permute_aux(num,bvisited,set,result); set.pop_back(); bvisited[i] = false; } } }