LeetCode 46順列(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 ビュー110 000 +

おすすめ

転載: blog.csdn.net/qq_42815188/article/details/104088172