全排列(回溯,递归leetcode46)-------------------c++实现

全排列(回溯,递归leetcode46)-------------------c++实现,第1张

全排列(回溯,递归leetcode46)-------------------c++实现 题目表述

给定一个不含重复数字的数组 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
著作权归领扣网络所有。

商业转载请联系官方授权,非商业转载请注明出处。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/674944.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-19
下一篇 2022-04-19

发表评论

登录后才能评论

评论列表(0条)

保存