LeetCode 46 Permutations(DFS)

题目链接:点击这里

在这里插入图片描述

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

        for(int i = 0; i < nums.size(); i++)
        {
            bool flag = true;
            for(int k = 0; k < tmp.size(); k++)
            {
                if(nums[i]==tmp[k])
                {
                    flag = false;
                    break;
                }
            }
            if(flag)
            {
                tmp.push_back(nums[i]);
                dfs(idx+1, nums, tmp, ans);
                tmp.pop_back();
            }
        }
    }

    vector<vector<int>> permute(vector<int>& nums) {
        vector<vector<int>> ans;    //记录结果
        vector<int> tmp;    //记录中间过程
        dfs(0, nums, tmp, ans);
        return ans;
    }
};
发布了694 篇原创文章 · 获赞 104 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/qq_42815188/article/details/104088172