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

[递归回溯]679. 24 点游戏

679. 24 点游戏

核心思想是使用递归和回溯。每次递归调用时,我们从列表中取出两个数(通过队列的方式,即每次弹出第一个元素),然后对这两个数进行四则运算(加、减、乘、除),将运算结果放回列表中,然后递归处理新的列表(长度减少1)。当列表只剩下一个数时,我们检查它是否接近24(使用math.isclose来避免浮点误差)。

class Solution:def judgePoint24(self, cards: List[int]) -> bool:if len(cards) == 1:return math.isclose(cards[0],24)for _ in range(len(cards)):a = cards.pop(0)  # 取出第一张牌for _ in range(len(cards)):b = cards.pop(0)  # 取出第二张牌for value in [a + b, a - b, a * b, b and a / b]:cards.append(value)  # 存入计算结果if self.judgePoint24(cards):  # 递归验证return Truecards.pop()  # 回溯恢复状态cards.append(b)  # 返还第二张牌cards.append(a)  # 返还第一张牌return False

http://www.xdnf.cn/news/18223.html

相关文章:

  • 基于RK3568/J6412的EMU多网口控制主机,助力储能工业互联管理和运维
  • PyTorch 社区贡献 和 设计原则
  • 第5课_Rust生命周期和泛型
  • Android MVVM(Model-View-ViewModel)架构
  • 从零开始的云计算生活——第四十七天,细水长流,kubernetes模块之ingress资源对象
  • 23TaskExecutor初始化
  • 【ansible】4.实施任务控制
  • AI 伦理的 “灰色地带”:当算法拥有决策权,公平与隐私该如何平衡?
  • 工地智能安全带让高空作业更安全
  • Kafka如何保证消费确认与顺序消费?
  • gcc 与 g++ 的区别:本身不是编译器而是编译器驱动
  • 数据库优化提速(一)之进销存库存管理—仙盟创梦IDE
  • 【Tech Arch】Apache Pig大数据处理的高效利器
  • 【JavaEE】多线程 -- 线程池
  • 基于单片机太阳能充电器/太阳能转换电能
  • 30. 技术专题-锁
  • HTTP的协议
  • .gitignore 文件 记录
  • Linux服务器性能优化总结
  • 【Tech Arch】Apache HBase分布式 NoSQL 数据库
  • redis---常用数据类型及内部编码
  • 如何低比特量化算法的工程实战与落地优化
  • 【考研408数据结构-08】 图论基础:存储结构与遍历算法
  • 让Chrome信任自签名证书
  • AI时代下阿里云基础设施的稳定性架构揭秘
  • C#海康SDK—热成像测温篇
  • gitlab、jenkins等应用集成ldap
  • package.json详细字段解释
  • 大数据技术栈 —— Redis与Kafka
  • JavaScript 性能优化实战:从分析到落地的全指南