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

leetcode:216.组合总和三

题目理解:

在组合的基础上,考虑组合的总和为n。

最直白的暴力方法是for循环嵌套n层,但是代码无法实现,因为n不确定。所以我们可以用递归几层来相当于循环嵌套几层实现。

树形结构:

for循环是按照[1,9]这个范围,树的宽度

深度是k,树的深度

代码:

1.定义path和result数组

2.参数targetSum,k,Sum,startIndex(初始化为1).

3.如果path的长度为而且targetSum和Sum相等,加入结果集

4.进入for循环后,计算Sum,新元素加入path,进入递归,重置Sum,弹出元素实现回溯。

剪枝操作:

1.在最前面判断targetSum和Sum的大小,若Sum已经大于targetSum,直接return

2.path长度不够k的话,直接剪枝。通过使得for循环里的i<=9变为i<=(9-(k-path.size)+1)即可。


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

相关文章:

  • [JAVAEE] 面试题(四) - 多线程下使用ArrayList涉及到的线程安全问题及解决
  • 图论-代码随想录刷题记录[JAVA]
  • 【数据结构与算法】第12课—数据结构之归并排序
  • 建筑施工特种作业人员安全生产知识试题
  • Vector Optimization – Stride
  • Golang | Leetcode Golang题解之第559题N叉树的最大深度
  • Mybatis开发辅助神器p6spy
  • 基于JavaWeb的网上订餐项目
  • Unity类银河恶魔城学习记录1-14 AttackDirection源代码 P41
  • 第十四章 以编程方式使用 SQL 网关 - %SQLGatewayConnection 方法和属性
  • 【正在更新】从零开始认识语音识别:DNN-HMM混合系统语音识别(ASR)原理
  • 02 数据库管理 数据表管理
  • 猫头虎分享已解决Bug || KeyError: ‘The truth value of a Series is ambiguous‘
  • nginx stream proxy 模块的ssl连接源码分析
  • python创建pdf文件
  • MySQL篇----第十八篇
  • 20:基于EL与JSTL的产品管理页-Java Web
  • qt-C++笔记之判断一个QLabel上有没有load图片
  • 基于Python的HTTP隧道安全性分析:魔法背后的锁与钥匙
  • 掌握rm命令:Linux文件删除的艺术与安全指南
  • 【书生·浦语大模型实战营】学习笔记1
  • CSS3 基本语法
  • 17:定时器编程实战
  • 微软和苏黎世联邦理工学院开源SliceGPT创新压缩技术节省大量部署资源;OpenAI成立儿童安全团队,防AI误用
  • JavaScript的聚焦:focus/blur
  • Acwing 5469. 有效点对【正难则反+巧妙选择根节点】