题解 | #没有重复项数字的全排列#
没有重复项数字的全排列
https://www.nowcoder.com/practice/4bcf3081067a4d028f95acee3ddcd2b1
#include <vector> class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param num int整型vector * @return int整型vector<vector<>> */ vector<vector<int> > permute(vector<int>& num) { // write code here // 用hash判断是否重复 // 用递归完成向后判断 vector<vector<int>> resList; if(num.size()==1){ cout<<"只是一个值"<<endl; resList.push_back(num); return resList; } vector<int> tmpList; for (int v1 : num) { cout << v1 << ' '; } cout<<"____"<<endl; for(int i = 0; i<num.size(); i++){ tmpList = num; tmpList.erase(tmpList.begin()+i); vector<vector<int>> tmpRes = permute(tmpList); for(int j = 0; j < tmpRes.size(); j++){ vector<int> tmpValue = tmpRes[j]; cout<<tmpValue.size()<<endl; cout<<"开始插入"<<num[i]<<endl; tmpValue.insert(tmpValue.begin(), num[i]); resList.push_back(tmpValue); cout<<"resList的长度"<<resList.size()<<endl; } } return resList; } };