当前位置: 首页 > 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/news/234245.html

相关文章:

  • 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. 有效点对【正难则反+巧妙选择根节点】
  • Netty应用(四) 之 Reactor模型 零拷贝
  • 【算法】排序详解(快速排序,堆排序,归并排序,插入排序,希尔排序,选择排序,冒泡排序)
  • OpenCV-32 膨胀操作
  • 2024PMP考试新考纲-近年PMP真题练一练和很详细解析(3)
  • 【java】简单的Java语言控制台程序
  • golang select两个channel性能稳定,三个channel时性能会发生抖动,为什么?
  • (c语言版)数组去重和排序 题目描述: 给定一个乱序的数组,删除所有的重复元素,使得每个元素只出现一次,并且按照出现的次数从高到低
  • 设计模式-行为型模式(下)
  • 七、热身仪式(Warm-Up Rituals)
  • 《杨绛传:生活不易,保持优雅》读书摘录