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

[递归回溯]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.dtcms.com/a/340813.html

相关文章:

  • LINUX 820 shell:shift,expect
  • 第5.8节:awk自增自减运算
  • linux的内核符号表
  • 服装外贸系统软件怎么用才高效防风险?
  • 曲面的交线的切向量计算及其在坐标平面投影的几何分析
  • 有向图(Directed Graph)和有向无环图(Directed Acyclic Graph,DAG)代码实践
  • 反向Shell(Reverse Shell)
  • Meta 再次重组人工智能部门
  • Visual Studio 2010 简体中文旗舰版 安装全过程详解(附安装包下载)
  • 常见的学术文献数据库
  • 华为数通认证学习
  • 微服务网关中数据权限传递的那些坑:从 Feign 兼容性问题到解决方案
  • 【鸿蒙心迹】7×24小时极限求生:当Origin_null遇上鸿蒙,我如何用100杯咖啡换一条跨域活路?
  • IDM 下载失败排查全攻略
  • HT6881:重塑便携式音频体验的高效能功率放大器
  • 【运维进阶】Linux 正则表达式
  • 怎么确定mysql 链接成功了呢?
  • Electron开发的核心功能要点总结,旨在帮助快速掌握Electron开发核心逻辑
  • 淘宝电商大数据采集【采集内容||采集方法|工具||合规性||应用】
  • 【爬虫实战-IP代理的重要性一】 以urllib和request为例
  • 【React】评论案例列表渲染和删除功能
  • 【工具使用-Docker容器】构建自己的镜像和容器
  • GO环境变量中GO111MODULE到底是干啥的?
  • ES常用查询命令
  • HTML应用指南:利用POST请求获取全国刘文祥麻辣烫门店位置信息
  • 无人机图传 便携式5G单兵图传 HDMI图传设备 多卡5G单兵图传设备详解
  • 极其简单二叉树遍历JAVA版本
  • PDF如何在Adobe Acrobat 中用OCR光学识别文档并保存可编辑文档
  • 【开源项目】高效入门视觉强化学习,告别零散资料,一个开源项目搞定500+资源
  • Java 15 新特性及具体应用