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

力扣-回溯-39 组合总和

思路

和之前几道组合的题目差不多,不同的是允许元素重复,所以要求单层递归里的for循环从当前的index开始即可

代码

class Solution {
public:
    int curSum;
    vector<int> path;
    vector< vector<int> > result;

    void backtracking(vector<int>& candidates, int curIndex, int target){
        if(curSum > target) return;
        if(curSum == target){
            result.push_back(path);
            return;
        }

        for(int i = curIndex; i < candidates.size(); i++){
            path.push_back(candidates[i]);
            curSum += candidates[i];
            backtracking(candidates, i, target);
            path.pop_back();
            curSum -= candidates[i];
        }

        return;
    }

    vector<vector<int>> combinationSum(vector<int>& candidates, int target) {
        backtracking(candidates, 0, target);
        return result;
    }
};


http://www.kler.cn/a/556711.html

相关文章:

  • Python 单例模式笔记
  • HarmonyOS NEXT 开发者进阶指南(基于API 12+理论解析)
  • 《Python实战进阶》专栏 No.3:Django 项目结构解析与入门DEMO
  • 如何优化Spark作业的性能
  • 网络通信中的TCP三次握手与四次挥手:新手小白的入门指南
  • OpenHarmony AI业务子系统
  • ncDLRES:一种基于动态LSTM和ResNet的非编码RNA家族预测新方法
  • 【git】合并多个提交记录
  • 【C/C++】合并两个有序链表 (leetcode T21)
  • 【ELK】【Elasticsearch】数据查询方式
  • 排序与算法:插入排序
  • EasyRTC:基于WebRTC与P2P技术,开启智能硬件音视频交互的全新时代
  • 安全面试1
  • 【Python】打造自己的HTTP server
  • OpenGauss MySQL兼容库迁移
  • Java 中 HTTP 协议版本使用情况剖析
  • 【QT 网络编程】HTTP协议(二)
  • SQLMesh 系列教程6- 详解 Python 模型
  • 物联网与大数据:揭秘万物互联的新纪元
  • (网络安全)渗透测试