zoukankan      html  css  js  c++  java
  • Leetcode 216. 组合总和 III

    地址 https://leetcode-cn.com/problems/combination-sum-iii/

    找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字。
    

     

    
    说明:
    
    所有数字都是正整数。
    解集不能包含重复的组合。 
    示例 1:
    
    输入: k = 3, n = 7
    输出: [[1,2,4]]
    示例 2:
    
    输入: k = 3, n = 9
    输出: [[1,2,6], [1,3,5], [2,3,4]]

    解法 DFS 逐个尝试 本代码没加优化 性能一般

    class Solution {
    public:
        
        vector<vector<int>> ret;
    void Dfs(int selectNum, int k, int n, vector<int>& v)
    {
        if (selectNum > 10) return;
        if (v.size() == k) {
            int sum = 0;
            for (auto e : v) { sum += e; }
            if (sum == n) { 
                ret.push_back(v);
            }
            return;
        }
    
        
            v.push_back(selectNum);
            Dfs(selectNum + 1, k, n, v);
            v.pop_back();
    
            Dfs(selectNum + 1, k, n, v);
        
    }
    
    vector<vector<int>> combinationSum3(int k, int n) {
        vector<int> v;
        Dfs(1, k, n, v);
    
        return ret;
    }
    
    };
    作 者: itdef
    欢迎转帖 请保持文本完整并注明出处
    技术博客 http://www.cnblogs.com/itdef/
    B站算法视频题解
    https://space.bilibili.com/18508846
    qq 151435887
    gitee https://gitee.com/def/
    欢迎c c++ 算法爱好者 windows驱动爱好者 服务器程序员沟通交流
    如果觉得不错,欢迎点赞,你的鼓励就是我的动力
    阿里打赏 微信打赏
  • 相关阅读:
    selenium中webDriver模块的常用方法
    java web Project Explorer误删解决方法
    java web开发前后端中文配置
    常见Filed Types
    类的展现
    面向对象:类与运算符
    面向对象定义类,属性
    筛选元素
    try : finally语句
    捕获异常try:except
  • 原文地址:https://www.cnblogs.com/itdef/p/11924130.html
Copyright © 2011-2022 走看看