class Solution {
public:
bool isReachableAtTime(int sx, int sy, int fx, int fy, int t) {
}
};
8049. 判断能否在给定时间到达单元格
给你四个整数 sx
、sy
、fx
、fy
以及一个 非负整数 t
。
在一个无限的二维网格中,你从单元格 (sx, sy)
开始出发。每一秒,你 必须 移动到任一与之前所处单元格相邻的单元格中。
如果你能在 恰好 t
秒 后到达单元格 (fx, fy)
,返回 true
;否则,返回 false
。
单元格的 相邻单元格 是指该单元格周围与其至少共享一个角的 8 个单元格。你可以多次访问同一个单元格。
示例 1:
输入:sx = 2, sy = 4, fx = 7, fy = 7, t = 6 输出:true 解释:从单元格 (2, 4) 开始出发,穿过上图标注的单元格,可以在恰好 6 秒后到达单元格 (7, 7) 。
示例 2:
输入:sx = 3, sy = 1, fx = 7, fy = 3, t = 3 输出:false 解释:从单元格 (3, 1) 开始出发,穿过上图标注的单元格,至少需要 4 秒后到达单元格 (7, 3) 。 因此,无法在 3 秒后到达单元格 (7, 3) 。
提示:
1 <= sx, sy, fx, fy <= 109
0 <= t <= 109
原站题解
php 解法, 执行用时: 12 ms, 内存消耗: 18.8 MB, 提交时间: 2023-09-11 06:27:43
class Solution { /** * @param Integer $sx * @param Integer $sy * @param Integer $fx * @param Integer $fy * @param Integer $t * @return Boolean */ function isReachableAtTime($sx, $sy, $fx, $fy, $t) { if ($sx === $fx && $sy === $fy) { return $t !== 1; } return max(abs($sx - $fx), abs($sy - $fy)) <= $t; } }
javascript 解法, 执行用时: 56 ms, 内存消耗: 42.3 MB, 提交时间: 2023-09-11 06:26:50
/** * @param {number} sx * @param {number} sy * @param {number} fx * @param {number} fy * @param {number} t * @return {boolean} */ var isReachableAtTime = function(sx, sy, fx, fy, t) { if (sx === fx && sy === fy) { return t !== 1; } return Math.max(Math.abs(sx - fx), Math.abs(sy - fy)) <= t; };
golang 解法, 执行用时: 4 ms, 内存消耗: 2.5 MB, 提交时间: 2023-09-11 06:26:35
func isReachableAtTime(sx, sy, fx, fy, t int) bool { if sx == fx && sy == fy { return t != 1 } return max(abs(sx-fx), abs(sy-fy)) <= t } func abs(x int) int { if x < 0 { return -x }; return x } func max(a, b int) int { if b > a { return b }; return a }
cpp 解法, 执行用时: 0 ms, 内存消耗: 5.8 MB, 提交时间: 2023-09-11 06:26:20
class Solution { public: bool isReachableAtTime(int sx, int sy, int fx, int fy, int t) { if (sx == fx && sy == fy) return t != 1; return max(abs(sx - fx), abs(sy - fy)) <= t; } };
java 解法, 执行用时: 0 ms, 内存消耗: 38.7 MB, 提交时间: 2023-09-11 06:26:10
public class Solution { public boolean isReachableAtTime(int sx, int sy, int fx, int fy, int t) { if (sx == fx && sy == fy) { return t != 1; } return Math.max(Math.abs(sx - fx), Math.abs(sy - fy)) <= t; } }
python3 解法, 执行用时: 36 ms, 内存消耗: 16 MB, 提交时间: 2023-09-11 06:25:52
class Solution: def isReachableAtTime(self, sx: int, sy: int, fx: int, fy: int, t: int) -> bool: if sx == fx and sy == fy: return t != 1 return max(abs(sx - fx), abs(sy - fy)) <= t