给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。
你可以 按任意顺序 返回答案。
示例 1:
输入:nums = [1,2,3]
输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]
1 <= nums.length <= 6
-10 <= nums[i] <= 10
nums 中的所有整数 互不相同
递归思路,要求就是每次的递归位不允许有重复的数字
注意点注意c++引用的运用
ac代码 c++:class Solution {
public:
void recombine(vector<vector<int>> &result, vector<int> &nums ,vector<int> &x,vector<int> &visit)
{
if(x.size()==nums.size())
{
result.push_back(x);
return;
}
for(int i=0;i<nums.size();i++)
if(!visit[i])
{
x.push_back(nums[i]);
visit[i]++;
recombine(result,nums,x,visit);
visit[i]--;
x.pop_back();
}
}
vector<vector<int>> permute(vector<int>& nums) {
vector<int> visit(nums.size(),0);
vector<vector<int>> result;
vector<int> x;
recombine(result,nums,x,visit);
return result;
}
};
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/squares-of-a-sorted-array
著作权归领扣网络所有。
商业转载请联系官方授权,非商业转载请注明出处。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)