解题思路:

  1. 从目标点(targetX, targetY)出发,逆推回起点(1, 1),看是否能够通过题目所给的四种移动方式到达起点。
  2. 对于每一步移动,根据移动后的坐标判断是否越界,若越界则直接跳过。
  3. 如果逆推到了起点(1, 1),则说明可以通过题目所给的四种移动方式从(1, 1)到达目标点(targetX, targetY),返回true,否则返回false。

时间复杂度:O(log(max(targetX, targetY))),因为每一步移动后的坐标的大小都不会超过原坐标的两倍,所以最多只需要逆推 O(log(max(targetX, targetY))) 步即可到达起点。

代码如下:

给你一个无穷大的网格图。一开始你在 1 1 你需要通过有限步移动到达点 targetX targetY 。每一步 你可以从点 x y 移动到以下点之一:x y - xx - y y2 x yx 2 y给你两个整数 targetX 和 targetY 分别表示你最后需要到达点的 X 和 Y 坐标。如果你可以从 1 1 出发到达这个点请你返回true 否则返回 false 。

原文地址: https://www.cveoy.top/t/topic/egVI 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录