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

力扣216--组合总和III

目录

题目

思路

代码


题目

找出所有相加之和为 n 的 k 个数的组合,且满足下列条件:

  • 只使用数字1到9
  • 每个数字 最多使用一次 

返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次,组合可以以任何顺序返回。

示例 1:

输入: k = 3, n = 7
输出: [[1,2,4]]
解释:
1 + 2 + 4 = 7
没有其他符合的组合了。

示例 2:

输入: k = 3, n = 9
输出: [[1,2,6], [1,3,5], [2,3,4]]
解释:
1 + 2 + 6 = 9
1 + 3 + 5 = 9
2 + 3 + 4 = 9
没有其他符合的组合了。

示例 3:

输入: k = 4, n = 1
输出: []
解释: 不存在有效的组合。
在[1,9]范围内使用4个不同的数字,我们可以得到的最小和是1+2+3+4 = 10,因为10 > 1,没有有效的组合。

思路

要找到和为n的k个数的组合,而整个集合已经是固定的了[1,...,9]。

 

代码

class Solution {
        List<List<Integer>> result=new ArrayList<>();
//最后返回的结果集
        LinkedList<Integer> path=new LinkedList<>();
//存的是每一个叶子节点
    public List<List<Integer>> combinationSum3(int k, int n) {
        backTracking(n,k,1,0);
        return result;

    }
    public void backTracking(int targetSum,int k,int startIndex,int sum){
        if(sum>targetSum){
//不符合,相当于一个剪枝,比如num是4,遍历到后面8自己就大于4了,就不需要再继续回溯了
            return;
        }
        if(path.size()==k){
            if (sum == targetSum) result.add(new ArrayList<>(path));
			return;
        }
        for(int i=startIndex;i<=9-(k-path.size())+1;i++){
            path.add(i);
            sum+=i;
            backTracking(targetSum, k, i + 1, sum);
            path.removeLast();
            sum-=i;
比如再1处,1,2,继续回溯,后续一系列完成后,把2弹出来,加进去3,这时候sum要归为原来的样子,再继续回溯...
        }
    }
}

相关文章:

  • 简单记录一次训练的怪异变慢
  • 队列+宽搜(典型算法思想)—— OJ例题算法解析思路
  • ORB-SLAM3的源码学习: CameraModels相机模型文件
  • 【ISO 14229-1:2023 UDS诊断(ECU复位0x11服务)测试用例CAPL代码全解析⑧】
  • 【C++初阶】类和对象③之运算符重载--从日期类推广自定义类型运算的方法奥秘
  • 使用Navicat for MySQL工具连接本地虚拟机上的MySQL
  • mybatis 入门案例
  • 磁电偶极子学习笔记2 60GHz 双极化 二维转换波束 口径耦合 磁电偶极子宽带天线阵列
  • 云平台结合DeepSeek的AI模型优化实践:技术突破与应用革新
  • Redis中的某一热点数据缓存过期了,此时有大量请求访问怎么办
  • 简述mysql主从复制原理及工作过程,配置一主两从并验证
  • 封装红黑树实现map和set
  • 缺陷检测之图片标注工具--labme
  • 【python】You-Get
  • 使用京东AsyncTool实现异步编排
  • 4、IP查找工具-Angry IP Scanner
  • 用deepseek学大模型03-数学基础 概率论 条件概率 全概率公式 贝叶斯定理
  • 周雨彤:用角色与生活,诠释审美的艺术
  • 1、cadence从零开始让一个VCO起振——基本设置
  • MATLAB算法实战应用案例精讲-【数模应用】空间插值(附MATLAB、R语言和python代码实现)
  • 江西德安回应“义门陈遗址建筑被没收”:将交由规范的义门陈相关社会组织管理
  • 国铁集团郑州局预计“五一”发送642.5万人
  • 史学巨擘的思想地图与学术路径——王汎森解析梁启超、陈寅恪、傅斯年
  • 昆明破获一起算命破灾诈骗案,民警:大师算不到自己的未来
  • 一季度规模以上工业企业利润由降转增,国家统计局解读
  • 我驻阿巴斯总领馆:将持续跟踪港口爆炸事件进展,全力确保中方人员安全