题解 | #没有重复项数字的全排列#
没有重复项数字的全排列
https://www.nowcoder.com/practice/4bcf3081067a4d028f95acee3ddcd2b1
#include <bits/types/struct_tm.h>
#include <vector>
class Solution {
public:
vector<vector<int> > permute(vector<int> &num) {
vector<vector<int>> result;
vector<int> tmp;
vector<int> visit(num.size(), 0);
backflow(num, result, tmp, visit);
return result;
}
void backflow(vector<int>& num, vector<vector<int>>& result, vector<int>& tmp, vector<int>& visit) {
if (tmp.size() == num.size()) {
result.push_back(tmp);
return;
}
for (int i = 0; i < num.size(); i++) {
if (visit[i] == 1) {
continue;
}
tmp.push_back(num[i]);
visit[i] = 1;
backflow(num, result, tmp, visit);
tmp.pop_back();
visit[i] = 0;
}
}
};