Leecode 46
思路:全排列,一般会用回溯法
代码:
class Leecode46 {
std::vector<std::vector<int>>Leecode46_permute(std::vector<int>& nums) {
std::vector<std::vector<int>> res;
backtrack(res, nums, 0, nums.size());
return res;
}
void backtrack(std::vector<std::vector<int>>& res, std::vector<int>& output, int first, int len) {
if (first == len) {
res.emplace_back(output);
return;
}
for (int i = first; i < len; ++i) {
swap(output[i], output[first]);
backtrack(res, output, first + 1, len);
swap(output[i], output[first]);
}
}
};