leetcode-46. 全排列-不含重复元素的全排列-dfs-swap

一、题目

leetcode-46. 全排列-不含重复元素的全排列-dfs-swap

二、思路

1、不含重复元素的全排列
2、dfs遍历,start用来统计当前多少个元素
3、核心

swap(nums[start],nums[i]);
dfs(nums,size,start+1);
swap(nums[start],nums[i]);

三、代码

class Solution {
public:
    vector<vector<int>>res;   
    vector<vector<int>> permute(vector<int>& nums) {
        if(nums.empty()){
            return res;
        }
        int size=nums.size();
        dfs(nums,size,0);
        return res;
    }

    void dfs(vector<int>& nums,int &size,int start){
        if(start==size){
            res.emplace_back(nums);
            return;
        }
        for(int i=start;i<size;++i){
            //交换nums[start]和nums[i]
            swap(nums[start],nums[i]);
            dfs(nums,size,start+1);
            swap(nums[start],nums[i]);
        }
    }
};
上一篇:探针配置失误,线上容器应用异常死锁后,kubernetes集群未及时响应自愈重启容器?


下一篇:[上机考试指导]