列表

详情


3516. 找到最近的人

给你三个整数 xyz,表示数轴上三个人的位置:

第 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。

 

提示:

原站题解

去查看

上次编辑到这里,代码来自缓存 点击恢复默认模板
class Solution { public: int findClosest(int x, int y, int z) { } };

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

上一题