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; } };
|