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

豆包 LeetCode 2543. 判断一个点是否可以到达 Java实现

题目分析

LeetCode 2543 判断一个点是否可以到达
规则:起点 (1, 1) ,可执行三种操作:

1. (x, y) → (x + y, y)
2. (x, y) → (x, x + y)
3. 若 x、y 均为偶数: (x, y) → (x/2, y/2)
给定 (tx, ty) ,判断能否从 (1,1) 到达。

核心思路(逆向推导)
正向枚举范围爆炸,从终点倒推回起点:

1. 若 tx > ty :只能由 (tx-ty, ty) 而来(或先除2)
2. 若 ty > tx :只能由 (tx, ty-tx) 而来(或先除2)
3. 两数都为偶数时,优先除以2缩小范围
4. 终止条件:其中一个数变为 1,再校验另一个数

Java 实现(递归+剪枝 / 迭代版)

迭代版(推荐,无栈溢出,效率高)

java

class Solution {
public boolean isReachable(int tx, int ty) {
while (tx > 1 && ty > 1) {
// 都为偶数,直接减半
if (tx % 2 == 0 && ty % 2 == 0) {
tx /= 2;
ty /= 2;
}
// tx 更大
else if (tx > ty) {
// 快速取模,避免多次减法超时
tx %= ty;
}
// ty 更大
else {
ty %= tx;
}
}
// 最终有一个为1,另一个必须是正整数
return tx == 1 || ty == 1;
}
}

递归版(简洁,数据量大可能栈溢出)

java

class Solution {
public boolean isReachable(int tx, int ty) {
if (tx == 1 && ty == 1) return true;
if (tx < 1 || ty < 1) return false;

if (tx % 2 == 0 && ty % 2 == 0) { return isReachable(tx / 2, ty / 2); } if (tx > ty) { return isReachable(tx - ty, ty); } else { return isReachable(tx, ty - tx); } }

}

关键点说明

1. 取模优化:不用循环减法, a % b 等价于连续减 b ,大幅提速,适配大数用例。
2. 偶数优先除2:对应题目第三种操作,是缩小坐标的核心。
3. 终止条件:只要其中一个坐标降到 1 ,剩余坐标一定可通过累加得到,直接返回 true 。

复杂度:时间 O(\log(\max(tx,ty))),空间 O(1)(迭代版)。

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

相关文章:

  • 户外门禁怕淋雨?这款灌胶防雨双频门禁好像还不错哦!
  • Agentic Search能替代GraphRAG吗,结论清晰了
  • 2026年5月更新:儿童山地自行车生产厂家综合推荐与深度解析 - 2026年企业推荐榜
  • 写给前端的 CANN-GraphCompiler:昇腾图编译器到底是啥?
  • ElevenLabs荷兰文语音生成速度对比实测:从4.2s→0.8s的WebSocket流式优化路径(附可复用代码片段)
  • 选C盘清理厂商不是看名气,是看这5步决策逻辑
  • 《CVPR2025-DEIM创新改进项目实战:从原理到部署的深度学习优化全攻略》017、YOLO-DEIM与DETR-DEIM的调试手记
  • [模型解析] Claude 4: 技术架构与能力评测
  • PHP - PHP 简易 Web 服务器、基础接口开发
  • 将数据从 OPPO 传输到 iPhone 的 4 个有效方案
  • CANN 算子调优:榨干昇腾硬件性能
  • 大模型终于看懂立体几何!中科院联合阿里提出统一形式语言,刷新解析SOTA
  • ElevenLabs河南话合成效果翻车?5大本地化陷阱与97.3%可听度提升实测方案
  • 如何10倍提升英语学习效率:词达人自动化助手终极教程
  • 谷歌收录怎么做比较快?提升网页打开速度至2秒内的优化方案
  • 2026年HR推荐的10个专业简历模板网站,从模板到写法
  • Github创建项目(创建仓库、新建项目、新建仓库)步骤
  • 删库跑路不用怕:带你秒懂数据库的“时光机”功能——PITR
  • ElevenLabs老挝文语音接入全链路详解:从API密钥配置、音色微调到低延迟TTS部署(含Laos Unicode编码避坑清单)
  • ElevenLabs陕西话支持深度测评(含3大隐藏限制与绕过方案):实测87%方言词准确率背后的工程真相
  • 我在大厂做开发的5年:那些996的日子
  • 从文件上传到 RAG 检索:真正看懂了一个 AI 项目的知识库链路
  • Midjourney色调分离失败的7大隐藏诱因,第4种连官方Support都曾误判为GPU故障
  • 1987年7月14日晚上19-21点出生性格、运势和命运
  • 从扁平到触手可及,Midjourney拟物化全流程拆解,含12组高复用材质参数模板与避坑清单
  • 3个核心功能揭秘:JiYuTrainer如何让极域电子教室不再束缚你的学习自由
  • 为HermesAgent配置自定义模型提供商Taotoken
  • Redis分布式锁进阶第一十一篇
  • 仅剩最后87份!《Midjourney蒸汽波风格暗网级资源包》含1980s合成器音源波形图转Prompt工具+失效预警插件
  • 谷歌收录怎么做比较快?Shopify过滤5个无效参数提升商品页收录