经典的递归法
#include <vector> class Solution { public: vector<vector<int> > permute(vector<int>& num) { vector<vector<int>> res, vvnum; vector<int> tmp; if (num.empty()) { return res; } if (num.size() == 1) { res.push_back(num); } else { for (int i = 0; i < num.size(); i++) { tmp = num; tmp.erase(tmp.begin() + i); vvnum = permute(tmp); for (int j = 0; j < vvnum.size(); j++) { vvnum[j].insert(vvnum[j].begin(), num[i]); res.push_back(vvnum[j]); } } } return res; } };