class Solution {
public:
int findClosest(int x, int y, int z) {
}
};
3516. 找到最近的人
给你三个整数 x
、y
和 z
,表示数轴上三个人的位置:
x
是第 1 个人的位置。y
是第 2 个人的位置。z
是第 3 个人的位置,第 3 个人 不会移动 。第 1 个人和第 2 个人以 相同 的速度向第 3 个人移动。
判断谁会 先 到达第 3 个人的位置:
根据上述规则返回结果。
示例 1:
输入: x = 2, y = 7, z = 4
输出: 1
解释:
由于第 1 个人先到达,所以输出为 1。
示例 2:
输入: x = 2, y = 5, z = 6
输出: 2
解释:
由于第 2 个人先到达,所以输出为 2。
示例 3:
输入: x = 1, y = 5, z = 3
输出: 0
解释:
由于两个人同时到达,所以输出为 0。
提示:
1 <= x, y, z <= 100
原站题解
java 解法, 执行用时: 0 ms, 内存消耗: 40.2 MB, 提交时间: 2025-04-16 09:21:33
class Solution { public int findClosest(int x, int y, int z) { int a = Math.abs(x - z); int b = Math.abs(y - z); return a == b ? 0 : a < b ? 1 : 2; } }
cpp 解法, 执行用时: 0 ms, 内存消耗: 8.5 MB, 提交时间: 2025-04-16 09:21:16
class Solution { public: int findClosest(int x, int y, int z) { int a = abs(x - z); int b = abs(y - z); return a == b ? 0 : a < b ? 1 : 2; } };
golang 解法, 执行用时: 0 ms, 内存消耗: 4.2 MB, 提交时间: 2025-04-16 09:21:05
func findClosest(x, y, z int) int { a := abs(x - z) b := abs(y - z) if a == b { return 0 } if a < b { return 1 } return 2 } func abs(x int) int { if x < 0 { return -x }; return x }
python3 解法, 执行用时: 0 ms, 内存消耗: 17.4 MB, 提交时间: 2025-04-16 09:20:31
class Solution: def findClosest(self, x: int, y: int, z: int) -> int: dx, dy = abs(x-z), abs(y-z) if dx < dy: return 1 elif dx == dy: return 0 else: return 2