给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。
可以使用回溯算法来解决。回溯算法通过尝试所有可能的选择来得到问题的解
为了给排列的元素去重有两种解法
解法一:
#include <vector>
void backtrack(std::vector<int>& nums, std::vector<bool>& used, std::vector<int>& permutation, std::vector<std::vector<int>>& result) {
if (permutation.size() == nums.size()) {
result.push_back(permutation);
return;
}
for (int i = 0; i < nums.