leetcode 216. 组合总和 III

2023.7.18

leetcode 216. 组合总和 III_第1张图片

         做了这道题 组合 之后,本题就很容易了,依旧是使用回溯。 其中需要统计一下总和sum值,以此来判断能否加入到最终数组中。下面上代码:

class Solution {
public:
    vector> ans;
    vector path;
    void backtrating(int k, int n, int start, int sum)
    {
        if(path.size() == k)
        {
            if(sum == n) 
            {
                ans.push_back(path);
            }
            return;
        }
        //for(int i=start; i<=9; i++) 
        //剪枝
        for(int i=start; i<=10-k+path.size(); i++)
        {
            path.push_back(i);
            sum += i;
            backtrating(k,n,i+1,sum);
            sum -= i;
            path.pop_back();
        }
    }
    vector> combinationSum3(int k, int n) {
        backtrating(k,n,1,0);
        return ans;
    }
};

你可能感兴趣的:(leetcode专栏,leetcode,算法,c++,数据结构)