[力扣题解] 216. 组合总和 III

题目:216. 组合总和 III

思路

回溯法

代码

class Solution {
private:
    vector<vector<int>> result;
    vector<int> path;

public:
    void function(int k, int n, int startindex, int sum)
    {
        
        int i;
        // 剪枝
        // 超过了, 不用找了;
        if(sum > n)
        {
            return;
        }
        // 找到k个数了
        if(path.size() == k)
        {
            if(sum == n)
            {
                result.push_back(path);
            }
            return;
        }

        // 题目提示了从[1, 9]中找
        for(i = startindex; i <= 9; i++)
        {
            // 剪枝
            // 需要找的数量 > 剩余的数量
            if((k - path.size()) > (9 - i + 1))
            {
                break;
            }
            sum += i;
            path.push_back(i);
            function(k, n, i+1, sum);
            sum -= i;
            path.pop_back();
        }
    }

    vector<vector<int>> combinationSum3(int k, int n) {
        result.clear();
        path.clear();
        function(k, n, 1, 0);
        return result;
    }
};

有2处剪枝哦!

相关推荐

  1. [题解] 216. 组合总和 III

    2024-05-10 12:56:03       37 阅读
  2. 2024.4.21每日一题——组合总和 III

    2024-05-10 12:56:03       32 阅读
  3. :40. 组合总和 II

    2024-05-10 12:56:03       43 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-10 12:56:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-10 12:56:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-05-10 12:56:03       82 阅读
  4. Python语言-面向对象

    2024-05-10 12:56:03       91 阅读

热门阅读

  1. PostgreSQL的pg_dump和 pg_dumpall 异同点

    2024-05-10 12:56:03       37 阅读
  2. 使用Python实现循环神经网络(RNN)的博客教程

    2024-05-10 12:56:03       30 阅读
  3. xml怎么用【C#,XML】

    2024-05-10 12:56:03       37 阅读
  4. (十二)C语言的结构体

    2024-05-10 12:56:03       35 阅读
  5. 设计模式——观察者模式(Observer)

    2024-05-10 12:56:03       31 阅读
  6. 责任链模式案例

    2024-05-10 12:56:03       29 阅读
  7. Linux下添加自己的服务脚本(service)

    2024-05-10 12:56:03       33 阅读