面试必考精华版Leetcode216. 组合总和 III

2023-12-18 19:29:28

题目:


代码(首刷看解析):

class Solution {
public:
    vector<vector<int>> combinationSum3(int k, int n) {
        backtracing(k,n,1);
        return res;
    }
    vector<vector<int>> res;
    vector<int> temp;
    void backtracing(int k,int n,int next){
        int size=temp.size();
        if(size==k&&n==0){
            res.emplace_back(temp);//达到要求加入res数组
            return;
        }else if(n<0){
            return;//超过最大数,返回
        }
        
        for(int i=next;i<=9;i++){
            if(size>k||n-i<0) break;
            temp.emplace_back(i);
            //每次循环,i是加入temp数组的数,n-i是剩下的数的和,每次i+1后继续递归,才保证数字不重复
            backtracing(k,n-i,i+1);
            
            temp.pop_back();
        }
    }
};

文章来源:https://blog.csdn.net/qq_52313711/article/details/135067614
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。