LeetCode216组合总和3

题目描述

  找出所有相加之和为 n 的 k 个数的组合,且满足下列条件:只使用数字1到9。每个数字 最多使用一次。返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次,组合可以以任何顺序返回。

解析

  递归加剪枝,搜索长度达到k就可以返回,另外当选择的数之和比n还大的时候就可以不用再搜索了。

public List<List<Integer>> combinationSum3(int k, int n) {List<List<Integer>> res = new ArrayList<>();boolean[] isChosen = new boolean[10];List<Integer> current = new ArrayList<>();DFS(res, current, isChosen, 0, k, n, 1);return res;}private void DFS(List<List<Integer>> res,List<Integer> current,boolean[] isChosen,int curSum,int k,int n,int start) {if(current.size() == k) {if(curSum == n) {res.add(new ArrayList<>(current));}return;}for(int i = start; i <= 9 ; i++) {if(!isChosen[i]) {current.add(i);curSum += i;if(curSum <= n) {isChosen[i] = true;DFS(res, current, isChosen, curSum, k, n, i + 1);}current.remove(current.size() - 1);curSum -= i;isChosen[i] = false; // 回溯}}}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/21763.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于JSP的美食推荐管理系统

你好呀&#xff0c;我是学长猫哥&#xff01;如果有需求可以文末加我。 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;JSPJavaBeansServlet 系统展示 首页 用户注册 用户登录 热门美食 摘要 本文介绍了一个基于JSP技术的美食推荐管理系统&#xff0…

PDFBox读取pdf的每一行内容

在Java中读取PDF文件并获取其“格式”通常指的是提取PDF文档中的不同内容类型&#xff0c;如文本、图像、字体、元数据等。但是&#xff0c;要注意的是&#xff0c;PDF并没有一个统一的“格式”定义&#xff0c;因为它是一个复杂的文档格式&#xff0c;可以包含各种元素和属性。…

企业内业务系统与Activiti流程引擎的结合(十一)

摘要:前文分享了企业内部系统集成Activiti的架构和API设计,这里再介绍下 bpmn 流程图的绘制以及与 流程图与bpm后台服务代码的结合点。 一、画流程图 以使用 eclipse 画流程图为例 1. 将 Activiti BPMN 插件安装到 eclipse 插件安装成本后的效果:新建向导中出现 Activiti…

ARM公司发展历程

Arm从1990年成立前开始&#xff0c;历经漫长岁月树立各项公司里程碑及产品成就&#xff0c;一步步成为全球最普及的运算平台。 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; Acorn 时期 1978年&#xff0c;Chris Curry和Hermann Hauser共同创立了Acorn…

electron初学

最近有一个开发桌面端的业务&#xff0c;考虑到跨平台就使用了electron。 引用官网&#xff1a;Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。 嵌入 Chromium 和 Node.js 到 二进制的 Electron 允许您保持一个 JavaScript 代码代码库并创建 在Windows…

23 种设计模式详解(全23种)

设计模式是一种解决特定问题的通用解决方案&#xff0c;主要用于软件开发中。常见的设计模式分为三大类&#xff1a;创建型模式、结构型模式和行为型模式。每类设计模式解决不同类型的问题。以下是每种类别中的常见设计模式&#xff1a; 创建型模式&#xff08;5种&#xff09…

0基础认识C语言(分支循环)

大家今天有没有开心的敲代码呢&#xff1f;hhhhhh让我们今天继续走进C语言~ 前提回顾&#xff1a; 上节课我们学习了一些单目操作符和双目操作符&#xff0c;还聊了一会儿 scanf 和 printf &#xff0c;今天我们对前一次的内容做一次补充 1.如果你想输出一个保留五位小数并且…

OpenAI 近期动荡:解雇 Sam Altman 事件分析与 AI 未来展望

引言 OpenAI 的动荡从未停止。最近&#xff0c;由于 OpenAI 高层领导的更迭&#xff0c;引发了广泛的关注和讨论。特别是在 Sam Altman 被解雇后&#xff0c;再次回归 CEO 职位的过程&#xff0c;更是引起了公众和业内的巨大反响。前 OpenAI 董事会成员 Helen Toner 在最新一期…

探索未来科技的前沿:从量子计算到人机融合

探索未来科技的前沿:从量子计算到人机融合 科技的飞速发展正在不断改变我们的生活方式。从人工智能(AI)到物联网(IoT),再到区块链和量子计算,每一个新兴技术都在推动着我们的社会走向一个全新的未来。本文将深入探讨几项最新的前沿科技,了解它们如何改变我们的世界以及…

如何利用AI大模型给我写程序

文章目录 1&#xff0c;应用情景&#xff08;给文件夹里的图片批量重命名&#xff09;2&#xff0c;选择合适的AI大模型3&#xff0c;复制AI给出来的代码&#xff0c;在本地执行4&#xff0c;结果检查 1&#xff0c;应用情景&#xff08;给文件夹里的图片批量重命名&#xff09…

JasperReport-动态数据源数据填充

一、数据填充 在正式环境中,报表中的内容或数据通常是通过查询底层数据源获取然后再进行数据填充。JasperReport的JAVA SDK中,提供了多种方法提供数据填充(如下其中一个示例): /** * 填充数据构造JasperPrint * is: 文件输入流 * parameters:参数 * connection:数据源…

代码随想录算法训练营第二十七天 | 39. 组合总和、40.组合总和II、131.分割回文串

39. 组合总和 题目链接&#xff1a;https://leetcode.cn/problems/combination-sum/ 文档讲解&#xff1a;https://programmercarl.com/0039.%E7%BB%84%E5%90%88%E6%80%BB%E5%92%8C.html 视频讲解&#xff1a;https://www.bilibili.com/video/BV1KT4y1M7HJ 思路 这道题和之前做…

如何通过拟合平面找到lidar点云数据intensity导数

source: chatgpt 我是知识的搬运工&#xff0c;尝试弄懂chat老师给我写的代码&#xff0c;我的思考历程是这样的 我跟它说生成一个关于intensity的导数&#xff0c;这是它生成的结果&#xff1a; def compute_gradient(neighbors_pts, neighbors_int):Fit a plane I(x, y, z)…

基于java的CRM客户关系管理系统(六)

目录 5.3 表现层设计 5.3.1 模型层&#xff08;M&#xff09; 5.3.2 视图层&#xff08;V&#xff09; 5.3.3 控制层&#xff08;C&#xff09; 5.4 系统主要功能模块的实现 5.4.1 登录功能的实现 5.4.2 客户管理的实现 5.5 本章小结 参考文献 前面内容请移步 基于java…

【CSS】scroll-snap属性详解

目录 scroll-snap-type方向&#xff1a;捕捉强度&#xff1a; scroll-snap-stopscroll-paddingscroll-margin实际使用示例 scroll-snap 是一个用于实现流畅滚动捕捉效果的 CSS 模块。它包含多个属性&#xff0c;可以应用于滚动容器和滚动子项上。 scroll-snap-type scroll-sna…

k8s学习--Secret详细解释与应用

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 Secret什么是Secret?Secret四种类型及其特点Secret应用案例&#xff08;1&#xff09;将明文密码进行base64编码&#xff08;2&#xff09;编写创建secret的YAML文…

笔试训练2

牛客.单词搜索 刚开始我就想是搜索&#xff0c;但是不清楚bfs还是dfs更好&#xff0c;我尝试了bfs但是队列存东西&#xff0c;没有我想象的那么好写&#xff0c;所以我决定试试dfs import java.util.*;public class Solution {static int m 0;static int n 0;static int […

【Qt快速入门(一)】- Qt简介

目录 Qt快速入门&#xff08;一&#xff09;Qt简介历史背景跨平台特性核心组件开发工具Qt Creatorqmake和CMake Qt的主要应用领域桌面应用移动应用嵌入式系统游戏开发Web应用 Qt社区和生态系统Qt MarketplaceQt认证 未来发展 Qt快速入门&#xff08;一&#xff09; Qt简介 Qt…

【人工智能Ⅱ】实验8:生成对抗网络

实验8&#xff1a;生成对抗网络 一&#xff1a;实验目的 1&#xff1a;理解生成对抗网络的基本原理。 2&#xff1a;学会构建改进的生成对抗网络&#xff0c;如DCGAN、WGAN、WGAN-GP等。 3&#xff1a;学习在更为真实的数据集上应用生成对抗网络的方法。 二&#xff1a;实验…

SaaS销售新指标|一文带你读懂什么是反向拒付指标

saas企业销售也需要一系列的指标来衡量企业运营情况如何&#xff1f;有哪些值得改善的地方&#xff1f;今天林叔发现一个比较有意思的新指标&#xff1a;反向拒付。希望能帮助saas企业更好的运营。 一、什么是反向拒付&#xff1f; **反向拒付指标&#xff08;反拒付指标&…