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

842. 将数组拆分成斐波那契序列(Medium)

  • 剑指Offer 10- I. 斐波那契数列(Easy)
  • 题解
classSolution:defsplitIntoFibonacci(self,num):ans=[]defbacktrack(idx):# 若已经到达原始字符串的长度,则表示已经拆分完ifidx==len(num):returnlen(ans)>=3curr=0foriinrange(idx,len(num)):# 剪枝情况1:当拆分出来的数长度大于1时,则不能以0开头ifnum[idx]=="0"andi>idx:breakcurr=curr*10+ord(num[i])-ord("0")# 剪枝情况2:若当前值过大,则停止循环ifcurr>2**31-1:break# 若当前ans列表中的元素不到2个 or curr满足斐波拉契条件,则进行回溯iflen(ans)<2orcurr==ans[-2]+ans[-1]:ans.append(curr)ifbacktrack(i+1):returnTrueans.pop()# 剪枝情况3:若列表中已经有2个数,且拆分出来的数已经大于这两个数的和# 此时curr不满足斐波拉契条件,不需要继续拆分eliflen(ans)>2andcurr>ans[-2]+ans[-1]:breakreturnFalsebacktrack(0)# 从第一个数(下标0)开始回溯returnans

http://www.jsqmd.com/news/710536/

相关文章:

  • 5分钟掌握APK-Installer:Windows上安装Android应用的终极指南
  • Scikit-learn KNN超快
  • (AUTOSAR)CANTP报文帧类型
  • 内容操作系统:构建自动化、可扩展的内容创作工作台
  • 20260427 紫题训练
  • 终极风扇控制指南:5分钟打造个性化静音电脑散热方案
  • GHelper终极指南:华硕笔记本性能优化与硬件控制完整解决方案
  • c语言完美演绎9-5
  • 【RISC-V国产驱动适配黄金法则】:20年嵌入式老兵亲授C语言层移植避坑指南(含3大厂商芯片实测数据)
  • 金融NLP实战:基于FinSight构建智能舆情监控系统
  • PvZ Toolkit:让经典游戏焕发新生的开源修改工具
  • Boris开发者指南:如何贡献代码和参与社区建设
  • 基于大语言模型的多智能体商业谈判系统设计与实践
  • CGPT框架:基于聚类的表格检索技术突破
  • 3分钟彻底清理Windows系统:Win11Debloat一键优化终极指南
  • 别再复制粘贴了!用ECharts 5和Vue 3从零画一张可交互的中国热力地图(附完整项目代码)
  • 在 SAP Gateway 的 $filter 里支持 toupper 和 tolower 的一条实战路线
  • Sunshine游戏串流完全指南:从零开始搭建自托管游戏服务器
  • Qtui文件界面模块化设计以及开发qss样式表文件
  • 【工业自动化底层开发必修课】:用纯C实现PLCopen MC Function Blocks,支持ISO 13849-1 SIL2认证的3个关键设计模式
  • P4590 [TJOI2018] 游园会 - Link
  • ICO图标批量生成工具:参数配置与场景实践
  • Preact并发模式:异步渲染的先进特性终极指南
  • 基于Docker Compose部署Ollama本地大语言模型全栈方案
  • 深度定制你的简历:React Ultimate Resume配色方案与个性化设置教程
  • 时间序列预测实战:从特征工程到XGBoost模型构建
  • 拍照式蓝光三维扫描仪如何实现汽车灯具全尺寸高效检测?
  • 终极指南:如何用AwesomeTTS为Anki卡片添加智能语音功能
  • Awesome Codex Skills中的开发者成长分析:从聊天历史中发现学习机会
  • 1000+ JavaScript面试题:从基础到进阶的终极准备指南