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