题意:生成排列数。
思路:DFS。
class Solution {
public:
vector <vector<int> > re;
vector<vector<int>> permute(vector<int>& nums) {
dfs(nums, 0);
return re;
}
int dfs(vector<int> sub, int k) {
if(sub.size() - 1 == k) {
re.push_back(sub);
return 0;
}
vector<int> temp;
int ch;
for(int i = k; i < sub.size(); ++ i) {
temp = sub;
ch = temp[k];
temp[k] = temp[i];
temp[i] = ch;
dfs(temp, k + 1);
}
return 0;
}
};