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

组合Ⅲ 力扣216

一、题目

        

二、思想

        依旧是回溯算法的运用,遵从回溯模板!

三、代码

class Solution {
    List<List<Integer>> result= new ArrayList<>();
    LinkedList<Integer> path = new LinkedList<>();
    int sum = 0;
    public List<List<Integer>> combinationSum3(int k, int n) {
        backTracking(n,k,1);
        return result;
    }
    public void backTracking(int targetSum,int k,int startIndex){
        //剪枝
		if (sum > targetSum) {
			return;
		}
        //4.回溯函数终止条件
        if(path.size() == k ) {
            if (sum == targetSum) result.add(new ArrayList<>(path));
            //5.返回上一层,叶子节点的上一层
            return;
        }
        //6.剪枝
       for(int i = startIndex;i <= 9 - (k - path.size()) + 1;i++){
            //7.增加节点,统计总和
            sum += i;
            path.add(i);
            //8.往下搜
            backTracking(targetSum,k,i+1);
            //9.回溯撤销处理结果
            path.removeLast();
             sum -= i;
        }
    }
}

相关文章:

  • 卫语句优化多层if else嵌套
  • Typora最新版破解教程
  • 最新版VMware 17.6.3安装包分享
  • 功耗电流和耗电量的获取
  • 大数据 spark hive 总结
  • react(一):特点-基本使用-JSX语法
  • 【大模型(LLMs)RAG 检索增强生成 面经】
  • 【HTML】二、列表、表格
  • 【JAVA】七、基础知识“if+switch+循环结构”详细讲解~简单易懂!
  • Trae:与AI结伴,开启编程新体验
  • springboot438-基于SpringBoot的数字化教学资源管理系统(源码+数据库+纯前后端分离+部署讲解等)
  • 王者荣耀道具页面爬虫(json格式数据)
  • 线程、多线程以及线程池的关系与用法
  • Xinference大模型配置介绍并通过git-lfs、hf-mirror安装
  • 【使用 Java 调用命令行工具:完整指南】
  • Vue 3 Diff 算法深度解析:与 Vue 2 双端比对对比
  • 【机器学习】基于t-SNE的MNIST数据集可视化探索
  • 【Vue3+Vite指南】全局引入SCSS文件后出现Undefined mixin?一招解决命名空间陷阱!
  • 高频面试题(含笔试高频算法整理)基本总结回顾27
  • 模型蒸馏系列——开源项目
  • IMF前副总裁朱民捐赠1000万元,在复旦设立青云学子基金
  • 安徽省公安厅原副厅长刘海石主动投案,正接受审查调查
  • 言短意长|新能源领军者密集捐赠母校
  • 初步结果显示,卡尼领导的加拿大自由党在联邦众议院选举中获胜
  • 河北:开展领导干部任性用权等形式主义官僚主义问题专项整治
  • 证券时报:“好房子”标准即将全面落地,购房者有哪些新期待