class Solution {
public:
double angleClock(int hour, int minutes) {
}
};
1344. 时钟指针的夹角
给你两个数 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
以内的结果都被视为正确结果。原站题解
java 解法, 执行用时: 0 ms, 内存消耗: 38.7 MB, 提交时间: 2022-12-05 15:34:40
class Solution { public double angleClock(int hour, int minutes) { int oneMinAngle = 6; int oneHourAngle = 30; double minutesAngle = oneMinAngle * minutes; double hourAngle = (hour % 12 + minutes / 60.0) * oneHourAngle; double diff = Math.abs(hourAngle - minutesAngle); return Math.min(diff, 360 - diff); } }
golang 解法, 执行用时: 0 ms, 内存消耗: 1.9 MB, 提交时间: 2022-12-05 15:34:26
func angleClock(hour int, minutes int) float64 { var oneMinAngle, oneHourAngle, minutesAngle, hourAngle, diff float64; oneMinAngle = 6; oneHourAngle = 30; minutesAngle = oneMinAngle * float64(minutes); hourAngle = (float64(hour % 12) + float64(minutes) / 60.0) * oneHourAngle; diff = math.Abs(hourAngle - minutesAngle); return math.Min(diff, 360 - diff); }
python3 解法, 执行用时: 36 ms, 内存消耗: 14.9 MB, 提交时间: 2022-12-05 15:34:13
class Solution: def angleClock(self, hour: int, minutes: int) -> float: one_min_angle = 6 one_hour_angle = 30 minutes_angle = one_min_angle * minutes hour_angle = (hour % 12 + minutes / 60) * one_hour_angle diff = abs(hour_angle - minutes_angle) return min(diff, 360 - diff)