Leetcode 面试题。
简单题。先对原vector的元素排好递增序,调用next_permutation方法就好。
class Solution {
public:
vector<vector<int> > permute(vector<int> &num) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
int sum = 1;
for(int i = 2; i <= num.size(); i ++){
sum *= i;
}
vector<vector<int> > ans(sum,vector<int>(0) );
sort(num.begin(),num.end());
int id = 0;
do{
for(int i = 0; i < num.size(); i ++){
ans[id].push_back(num[i]);
}
id++;
}while(next_permutation(num.begin(),num.end()));
return ans;
}
};