Получен массив nums
различных целых чисел.
Нужно вернуть все возможные перестановки.
Ответ можно вернуть в любом порядке.
Входные данные: nums = [1,2,3]
Результат: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ]
Входные данные: nums = [0,1]
Результат: [ [0,1], [1,0] ]
Входные данные: nums = [1]
Результат: [ [1] ]
class Solution {
private:
vector<vector<int>> result;
void permute(vector<int>& nums, int start) {
int len = (int)nums.size();
if (start == len - 1) {
result.push_back(nums);
} else {
for (int i = start; i < len; i++) {
if(i > start) { swap(nums[start], nums[i]); }
permute(nums, start + 1);
if(i > start) { swap(nums[start], nums[i]); }
}
}
return;
}
public:
vector<vector<int>> permute(vector<int>& nums) {
permute(nums, 0);
return result;
}
};