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

力扣 39. 组合总和

题目来源:https://leetcode.cn/problems/combination-sum/description/

 

C++题解: 递归法。递归前对数组进行有序排序,可方便后续剪枝操作。

  • 递归函数参数:定义两个全局变量,二维数组result存放结果集,数组path存放符合条件的结果。参数为集合candidates,和目标值target,已有元素和sum,及开始遍历的第ind个元素(注意,遍历时可以从ind开始,不用+1);
  • 递归终止条件:当sum大于target或sum等于target两种情况;
  • 单层递归逻辑:更新sum值进行回溯。
class Solution {
public:vector<vector<int>> res;vector<int> path;void backtracking(vector<int> candidates, int target, int sum, int ind) {if(sum > target) return;if(sum == target) {res.push_back(path); return;}for(int i = ind; i < candidates.size(); i++) {if(sum + candidates[i] > target) break;path.push_back(candidates[i]);backtracking(candidates, target, sum + candidates[i], i);path.pop_back();}return;}vector<vector<int>> combinationSum(vector<int>& candidates, int target) {sort(candidates.begin(), candidates.end());if(candidates[0] > target) return res;backtracking(candidates, target, 0, 0);return res;}
};

http://www.lryc.cn/news/94345.html

相关文章:

  • 基于BES系列蓝牙耳机NTC充电电池保护电路设计
  • 13-C++算法笔记-递归
  • 从古代八卦探究计算机的八进制
  • Linux shell mkfs.ext4命令参数使用
  • 【Docker】子系统与其相关名词的界定、Control Groups等详细讲解
  • spring事务的传播性与隔离性
  • 【设计模式】模板方法与策略模式的结合使用
  • Jmeter实现参数加密
  • Solon Web 开发:四、认识请求上下文(Context)
  • docker安装RocketMQ(附填坑经验connect to <172.17.0.3:10909> failed)
  • GRU、LSTM、注意力机制(第八次组会)
  • 问题杂谈(三十六)@RequestBody、@RequestParam和@PathVariable三个注解的区别和使用
  • Flutter学习四:Flutter开发基础(六)调试Flutter应用
  • 新的开始(开始更新笔记)
  • 爬虫工具-替换js文件ReRes插件/Gores插件
  • 多任务学习用于多模态生物数据分析
  • 使用less命令搜索文件中的关键字
  • 【kubernetes系列】Kubernetes之Taints和tolerations
  • 宝剑锋从磨砺出 梅花香自苦寒来(高考志愿篇)
  • Jtti:怎样进行sql server2000 日志传送
  • MyBatis-Plus:条件构造器Wrapper
  • SNMP 计算机网络管理 实验1(二) 练习与使用Wireshark抓取SNMP数据包抓包之 任务三分析并验证TCP三次握手建立连接时三次握手工作过程
  • 【UE5 Cesium】03-Cesium for Unreal 添加本地数据集
  • 数通王国历险记之地址分析协议(ARP)
  • Mac端显示服务器上show的内容
  • 【SQL】每类视频近一个月的转发量/率
  • chatgpt读论文
  • 关于visual studio 2010 及以上版本 引入boost库的最新解决方法
  • SpringBoot+ Dubbo + Mybatis + Nacos +Seata整合来实现Dubbo分布式事务
  • MongoDB使用