成都高新区建设局网站,如何创建一个网址,什么插件可以做网站访问量统计,珠海网站上排名给定一个不含重复数字的数组 nums #xff0c;返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。
示例 1#xff1a;
输入#xff1a;nums [1,2,3]
输出#xff1a;[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例 2#xff1a;
输入#xff1a;nums …给定一个不含重复数字的数组 nums 返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。
示例 1
输入nums [1,2,3]
输出[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例 2
输入nums [0,1]
输出[[0,1],[1,0]]示例 3
输入nums [1]
输出[[1]]提示
1 nums.length 6-10 nums[i] 10nums 中的所有整数 互不相同
class Solution {
public:vectorvectorint permute(vectorint nums) {sort(nums.begin(), nums.end());vectorvectorint ans;ans.push_back(nums);int sum 1;int num nums.size();while(num 1){sum * num;num--;}for(int j0;jsum-1;j){int n nums.size(); int i n - 2; // 从右向左找到第一个不满足升序的位置 while (i 0 nums[i] nums[i 1]) { i--; }if (i 0) { // 从右向左找到第一个大于nums[i]的元素 int j n - 1; while (j i nums[j] nums[i]) { j--; } // 交换nums[i]和nums[j] swap(nums[i], nums[j]); }// 将i1及其之后的部分翻转成升序 reverse(nums.begin() i 1, nums.end());ans.push_back(nums);}return ans;}
};