46. Permutations
class Solution {
public:
/**
* @param nums: A list of integers.
* @return: A list of permutations.
*/
vector<vector<int> > permute(vector<int>& nums) {
// write your code here
vector<vector<int>> res;
vector<int> sub;
vector<bool> visited(nums.size(), 0);
if(nums.empty()){
res.push_back(sub);//!!!!!!!!!
return res;
}
helper(nums, visited, sub, res);
return res;
}
void helper(vector<int>& nums, vector<bool> &visited,
vector<int> &sub, vector<vector<int>> &res){
if(sub.size() == nums.size()){
res.push_back(sub);
return;
}
for(int i=0; i<nums.size(); i++){
if(!visited[i]){
sub.push_back(nums[i]);
visited[i] = 1;
helper(nums, visited, sub, res);
sub.pop_back();
visited[i] = 0;
}
}
}
};
469

被折叠的 条评论
为什么被折叠?



