全排列
题目链接:全排列
给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。
方法一:回溯
class Solution {
public:
vector<vector<int>> ans;
bool check[12];
vector<int> t;
void f(vector<int>& nums,int x) {
if (x >= nums.size()) {
ans.push_back(t);
return ;
}
for (int i = 0;i < nums.size();i++) {
if (!check[i]) {
check[i] = true;
t.push_back(nums[i]);
f(nums,x+1);
t.pop_back();
check[i] = false;
}
}
}
vector<vector<int>> permute(vector<int>& nums) {
memset(check, false, sizeof(check));
f(nums,0);
return ans;
}
};