代码成就万世基积沙镇海,梦想永在凌云意意气风|

又一岁荣枯

园龄:3年4个月粉丝:11关注:6

C++回溯算法+剪枝

例题-全排列

给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。

题解

class Solution {
public:
    void dfs(vector<int> nums,vector<int>& allnum,vector<vector<int>>& res){
        if(allnum.size()==nums.size()){
            res.push_back(allnum);
            return ;
        }

        for(int i=0;i<nums.size();i++){
            if(find(allnum.begin(),allnum.end(),nums[i])==allnum.end()){
                allnum.push_back(nums[i]);
                dfs(nums,allnum,res);
                allnum.pop_back();
            }
        }
        
    }
    vector<vector<int>> permute(vector<int>& nums) {
        vector<int> allnum;
        vector<vector<int>> res;
        dfs(nums,allnum,res);
        return res;
    }
};

本文作者:又一岁荣枯

本文链接:https://www.cnblogs.com/java-six/p/16142355.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   又一岁荣枯  阅读(86)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起