1344. Angle Between Hands of a Clock

Given two numbers, hour and minutes. Return the smaller angle (in degrees) formed between the hour and the minute hand.

1
2
3
4
Example 1:

Input: hour = 12, minutes = 30
Output: 165

ex1

1
2
3
4
Example 2:

Input: hour = 3, minutes = 30
Output: 75

ex2

1
2
3
4
Example 3:

Input: hour = 3, minutes = 15
Output: 7.5

ex3

1
2
3
4
Example 4:

Input: hour = 4, minutes = 50
Output: 155
1
2
3
4
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.

Solution

1
2
3
4
5
6
7
8
9
class Solution {
    public double angleClock(int hour, int minutes) {
        hour = hour % 12;
        double degree1 = (hour * 60 + minutes) / 60.0 / 12.0 * 360.0;
        double degree2 = (double) minutes / 60.0 * 360.0;
        double diff = Math.abs(degree1 - degree2);
        return Math.min(360.0 - diff, diff);
    }
}