46.全排列
2021-03-27 本文已影响0人
我不是匠人
思路
- 深度搜索+回溯
- 2021.03.27
class Solution {
public:
int n;
vector<vector<int>> res;
vector<int> temp;
vector<bool> st;
vector<vector<int>> permute(vector<int>& nums) {
sort(nums.begin(), nums.end());
n = nums.size();
temp.resize(n);
st.resize(n);
dfs(nums, 0);
return res;
}
void dfs(vector<int>&nums, int u){
if(u == n){
res.push_back(temp);
return;
}
for(int i = 0; i < n; i++){
if(!st[i]){
st[i] = true;
temp[i] = nums[u];
dfs(nums, u+1);
st[i] = false;
}
}
}
};