1344. Angle Between Hands of a Clock

Oct 06, 2020

今天的题目是1344. Angle Between Hands of a Clock

思路大概是这样的,因为时针的位置会受到分针位置的影响,比如分针在30时,时针也会向前移动半格,因此解决了这个问题就好办了。由于分钟只能在 0 到 59 之间,所以我们可以把时针的一个格子分成 60 等分,那么12个格子就是 720 等分,然后分针也映射到 720 等分的格子中,就可以简单的通过减法和除法来计算夹角占整个圆的比例了,进而算出夹角的弧度制。

  • 时针的位置:hour * 60 + minutes
  • 分针的位置:minutes * 720 / 60 or minutes * 12

代码如下:

double angleClock(int hour, int minutes) {
	hour = hour % 12;
	minutes = minutes % 60;
	hour = hour * 60 + minutes;
	minutes = minutes * 12;
	return min(720 - abs(hour - minutes), abs(hour - minutes)) / 2.0;
}
LeetCodeMath

817. Linked List Components

677. Map Sum Pairs

comments powered by Disqus