class Solution { public: vector<vector<int> > permute(vector<int> &num) { return permuteHelper(num, num.size() - 1); } vector<vector<int> > permuteHelper(vector<int>& num, int index) { vector<vector<int> > result; if(index == 0) { vector<int> entry{num[index]}; result.emplace_back(entry); } else { auto ret = permuteHelper(num, index - 1); for(auto& entry: ret) { for(int i = 0; i <= entry.size(); ++i) { vector<int> newEntry(entry); newEntry.insert(newEntry.begin() + i, num[index]); result.emplace_back(newEntry); } } } return result; } };
No comments:
Post a Comment