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
Answers within 10^-5 of the actual value will be accepted as correct.

Difficulty: interview

Starter code:

class Solution:
    def angleClock(self, hour: int, minutes: int) -> float:
        

Solutions:
class Solution:
    def angleClock(self, hour: int, minutes: int) -> float:
        hour_angle = hour*30+(minutes/12)*6
        if hour_angle > 360:
            hour_angle -= 360
        min_angle = (minutes/5)*30
        if min_angle > 360:
            min_angle -= 360
            
        diff = abs(hour_angle-min_angle)
        return diff if diff <= 360-diff else 360-diff

class Solution:
    def angleClock(self, hour: int, minutes: int) -> float:
        minutes_num = minutes/5
        hour += minutes/60
        angle = abs(hour - minutes_num)*30
        return min(360-angle, angle)

class Solution:
    def angleClock(self, hour: int, minutes: int) -> float:
        hour = hour if hour < 12 else hour - 12
        minute_angle = float(minutes) / 60.0 * 360.0
        hour_angle = 30.0 * hour + minutes / 60 * 360.0 / 12.0
        return abs(minute_angle - hour_angle) if abs(minute_angle - hour_angle) < 180.0 else 360.0 - abs(minute_angle - hour_angle)


class Solution:
    def angleClock(self, hour: int, minutes: int) -> float:
        angle_per_min = 360/(60)
        angle_per_5_min = 5*angle_per_min

        h = hour%12 + minutes/60
        hr_angle = h*angle_per_5_min
        min_angle = minutes*angle_per_min

        # print(f'h={h}, minutes={minutes}, hr_angle={hr_angle}, min_angle={min_angle}')
        r = abs(hr_angle-min_angle)
        return min(360-r, r)

class Solution:
    def angleClock(self, hour: int, minutes: int) -> float:
        
        hr = (hour  + float(minutes / 60)) *30
        
        mi = minutes * 6
        
        ang = abs(hr - mi)
        
        return min(360.0 - ang, ang)
    


class Solution:
    def angleClock(self, hour: int, minutes: int) -> float:
        # calculate the angle for hour and minutes separately and then calculate the min
        minute_angle = 360 / 60 * minutes
        hour_angle = (hour % 12) * (360/12) + ((minutes / 60) * (360 / 12))
        return min(abs(hour_angle - minute_angle), 360 - abs(hour_angle - minute_angle))


class Solution:
    def angleClock(self, hour: int, minutes: int) -> float:
        #hr=0.5deg in 1 min
        #min=6deg in 1 min
        if(hour<=6):
            originaldiff=hour*30*-1
        else:
            originaldiff=(12-hour)*30
        print(originaldiff)
        mintravelled=5.5*minutes
        return min(abs(mintravelled+originaldiff),abs(mintravelled+originaldiff-360))


class Solution:
    def angleClock(self, hour: int, minutes: int) -> float:
      hour_angle = (hour % 12)/12*360 + (minutes/60)*30
      min_angle = minutes/60*360
      target = abs(hour_angle - min_angle)
      #print (hour_angle, min_angle)
      if target > 180: target = 360 - target
      return target