Baozi Training Leetcode solution 1344. Angle Between Hands of a Clock
阿新 • • 發佈:2020-07-21
Problem Statement
Given two numbers,hour
andminutes
. Return the smaller angle (in degrees) formed between thehour
and theminute
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
- Answers within
10^-5
of the actual value will be accepted as correct.
Video Tutorial
You can find the detailed video tutorial here
Thought Process
Purely a math problem. Calculate the clock's hour hand and minute hand separately.- There are 60 minutes in 360 angle, so each minute is 6 degree in angle.
- Angle should be the absolute value of (minute angel - hour angle)
- Final angle should be min(angle, 360 - angle)
Solutions
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