当前位置: 首页 > news >正文

力扣39题 组合总和

类型:回溯算法

无重复元素

重点:同一个数字可以无限制重复选取,但是有总和的限制,所以间接的也就是有个数的限制。

1.递归函数参数

result存放结果集,数组path存放符合条件的结果。集合candidates和目标值target,需要使用startindex来控制循环的起始位置,对于组合问题,什么时候用startindex?

如果一个集合来求组合的话,就需要使用startindex,如果是多个集合取组合,各个集合之间相互不影响,就不用startindex,为了防止出现重复的组合。

2.递归终止条件

sum大于等于target

3.单层搜索的逻辑

单层for循环依然是从startindex开始,搜索candidates集合。

class Solution {
public:
    vector<vector<int>>result;
    vector<int>path;
    void backtracing(vector<int>&candidates,int target,int sum,int startIndex){
        if(sum>target){
            return;
        }
        if(sum==target){
            result.push_back(path);
            return;
        }
        for(int i=startIndex;i<candidates.size();i++){
            sum += candidates[i];
            path.push_back(candidates[i]);
            backtracing(candidates,target,sum,i);
            sum -= candidates[i];
            path.pop_back();
        }
    }
    vector<vector<int>> combinationSum(vector<int>& candidates, int target) {
        result.clear();
        path.clear();
        backtracing(candidates,target,0,0);
        return result;
    }
};

http://www.rkmt.cn/news/5472.html

相关文章:

  • 力扣34题 在排序数组中查找元素的第一个和最后一个位置
  • ECT-OS-JiuHuaShan框架编程的示范与分析,无懈可击的数学逻辑自洽
  • 使用 systemd 管理 Python 项目(示例:confhub-sync)
  • 9.15模拟赛总结
  • ECT-OS-JiuHuaShan框架,将会是全球推理之源,无需数据训练,只需数据检索和校验。彻底颠覆概率云ai
  • 如何正确使用mysql
  • qoj4239 MST
  • 第一篇博客
  • springboot的启动流程
  • 「微积分 A1」基础知识(连载中)
  • 萤火虫文旅年票、为什么能做到低至4.2元一张景区门票、还能高达50%的毛利润?
  • SAP 采购订单税率及含税金额取数
  • Jenkins 容器和 Kubernetes Agent
  • LGP7916 [CSP-S 2021] 交通规划 学习笔记
  • 详细介绍:【Kubernetes】常见面试题汇总(十四)
  • 教育行业API安全最佳实践:全知科技以国家标准引领数据防护新范式
  • Qt处理USB摄像头开发说明与QtMultimedia与V4L2融合应用
  • 拾忆录
  • 从零搭建RAG应用:跳过LangChain,掌握文本分块、向量检索、指代消解等核心技术实现
  • python高阶技巧
  • CSS纯文本渐变动效
  • Redssion
  • 提升系统可靠性:Air8000多串口硬件设计的黄金法则
  • 20250915笔记
  • enumerate函数
  • HyperWorks许可激活
  • OpenStack Nova instance 常见操作
  • 线性规划
  • 伪代码学习总结
  • 麒麟