做这道题的时候,包子君不得的感慨一下,也不知道现在的Gen Z一代美国小孩儿,可能只会读digital clock 而不认识analog的时钟了,sigh。。。
Blogger: http://blog.baozitraining.org/2020/07/leetcode-solution-1344-angle-between.html
博客园: https://www.cnblogs.com/baozitraining/p/13354555.html
Youtube: https://youtu.be/QTqBWGBC70w
B站: https://www.bilibili.com/video/BV1bt4y1X7rJ/
Given two numbers, hour
and minutes
. Return the smaller angle (in degrees) formed between the hour
and the minute
hand.
Example 1:
Input: hour = 12, minutes = 30
Output: 165
Example 2:
Input: hour = 3, minutes = 30
Output: 75
Example 3:
Input: hour = 3, minutes = 15
Output: 7.5
Example 4:
Input: hour = 4, minutes = 50
Output: 155
Example 5:
Input: hour = 12, minutes = 0
Output: 0
Constraints:
1 <= hour <= 12
0 <= minutes <= 59
10^-5
of the actual value will be accepted as correct.Problem link
You can find the detailed video tutorial here
Purely a math problem. Calculate the clock's hour hand and minute hand separately.
1 public double angleClock(int hour, int minutes) {
2 if (hour == 12) {
3 hour = 0;
4 }
5 double angle = Math.abs(minutes * 6 - (hour + (double)minutes / 60) * 30);
6
7 if (angle > 180) {
8 angle = 360 - angle;
9 }
10 return angle;
11 }
Time Complexity: O(1) since it's a math problem Space Complexity: O(1) no extra space is used