0%

1344. Angle Between Hands of a Clock

O(1) time O(1) space
表盘360度 每一分钟360 / 60 = 6度 每一小时360 / 12 = 30度
注意分针在走时 时针也在走 所以时针可能不是指向整点位置
分针距离0点的度数 min * 6
时针距离0点的度数 (hr + min / 60) * 30
两者相减后求绝对值即为diff
最后只需要返回min{diff, 360 - diff}即可

1
2
3
4
5
6
7
class Solution {
public:
double angleClock(int hour, int minutes) {
double diff = fabs(minutes * 5.5 - hour * 30);
return min(diff, 360 - diff);
}
};
1
2
3
4
5
6
7
class Solution {
public:
double angleClock(int hour, int minutes) {
double diff = fabs(minutes * 5.5 - hour * 30);
return diff <= 180 ? diff : 360 - diff;
}
};