Angle Between Hands of a Clock
Medium
Watch on YouTube ↗Solution
class Solution {
public double angleClock(int hour, int minutes) {
// Time: O(1), Space: O(1)
// Hour hand moves 30 degrees per hour, plus 0.5 degrees per minute (drift)
double hourdegree = (hour % 12) * 30 + (0.5) * minutes;
// Minute hand moves 6 degrees per minute
double mindegree = minutes * 6;
double diff = Math.abs(hourdegree - mindegree);
// Return the smaller of the two angles formed (clockwise vs counter-clockwise)
return Math.min(diff, 360 - diff);
}
}