LeetCode 216 Combination Sum III(递归)

题目链接:点击这里
在这里插入图片描述

class Solution {
public:
    bool vis[100];
    void dfs(int idx, int k, int n, vector<int>& tmp, vector<vector<int>>& ans)
    {
        if(tmp.size()==k)
        {
            int sum = 0;
            for(int i = 0; i < tmp.size(); i++)
                sum += tmp[i];
            if(sum==n)  ans.push_back(tmp);
            return;
        }
        for(int i = idx; i <= 9; i++)
        {
            tmp.push_back(i);
            dfs(i+1, k, n, tmp, ans);
            tmp.pop_back();
        }
    }

    vector<vector<int>> combinationSum3(int k, int n) {
        vector<vector<int>> ans;
        vector<int> tmp;
        dfs(1, k, n, tmp, ans);
        return ans;
    }
};
发布了701 篇原创文章 · 获赞 104 · 访问量 11万+

猜你喜欢

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