题目:
Given a collection of distinct integers, return all possible permutations.
Example:
Input: [1,2,3] Output: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ]
题意:
给出数组的全排列
思路:
dfs
Code:
class Solution {
public:
int len;
vector<vector<int>> q;
void dfs(vector<int> nums,int cnt){
if(cnt==len){
q.push_back(nums);
return;
}
for(int i=cnt;i<len;i++){
swap(nums[cnt],nums[i]);
dfs(nums,cnt+1);
swap(nums[cnt],nums[i]);
}
}
vector<vector<int>> permute(vector<int>& nums) {
len=nums.size();
dfs(nums,0);
return q;
}
};