Problem
Given two numbers, hour
and minutes
, return **the smaller angle (in degrees) formed between the *hour
* and the minute
hand**.
Answers within 10-5
of the actual value will be accepted as correct.
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
Constraints:
1 <= hour <= 12
0 <= minutes <= 59
Solution (Java)
class Solution {
public double angleClock(int hour, int minutes) {
double minAngle = minutes * 360.0 / 60;
double hourAnglePart1 = hour != 12 ? (hour * 360.0) / 12 : 0;
double hourAnglePart2 = (double) (30 * minutes) / (double) 60;
double hourAngle = hourAnglePart1 + hourAnglePart2;
double preResult = Math.abs(minAngle - (hourAngle));
return preResult > 180 ? 360 - preResult : preResult;
}
}
Explain:
nope.
Complexity:
- Time complexity : O(n).
- Space complexity : O(n).