目标
给你两个数 hour 和 minutes 。请你返回在时钟上,由给定时间的时针和分针组成的较小角的角度(60 单位制)。
示例 1:

输入:hour = 12, minutes = 30
输出:165
示例 2:

输入:hour = 3, minutes = 30
输出;75
示例 3:

输入:hour = 3, minutes = 15
输出:7.5
示例 4:
输入:hour = 4, minutes = 50
输出:155
示例 5:
输入:hour = 12, minutes = 0
输出:0
说明:
- 1 <= hour <= 12
- 0 <= minutes <= 59
- 与标准答案误差在 10^-5 以内的结果都被视为正确结果。
思路
计算时钟时针与分针的较小夹角。
问题的关键是时针转动的角度不能直接按 hour 来算,根据分针的指向有一定的偏移,偏移的角度是 minutes / 60 * 30,其中 30 是一个小时格子的角度。hour / 12 * 360 + minutes / 60 * 30 - minutes / 60 * 360 = 30 * hour - minutes * 5.5
代码
/**
* @date 2026-06-18 9:17
*/
public class AngleClock1344 {
public double angleClock(int hour, int minutes) {
double res = Math.abs(30 * hour - minutes * 5.5);
return Math.min(res, 360 - res);
}
}
性能
