包子旧闻&Leetcode solution 1344. Angle Between Hands of a Clock

时间:2022-07-22
本文章向大家介绍包子旧闻&Leetcode solution 1344. Angle Between Hands of a Clock,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

做这道题的时候,包子君不得的感慨一下,也不知道现在的Gen Z一代美国小孩儿,可能只会读digital clock 而不认识analog的时钟了,sigh。。。

  • 大谷歌宣布所有的员工可以remote work到明年6月份,大哥已经表态,小弟们估计也都要跟上。不过感觉美国疫情到明年6月份也不一定控制得住
  • Feds 新的stimulus package一个月又是每户$1200,有时候真的是傻傻搞不清楚分不清到底美国是社会主义还是中国是资本主义了

Blogger: http://blog.baozitraining.org/2020/07/leetcode-solution-1344-angle-between.html

博客园: https://www.cnblogs.com/baozitraining/p/13354555.html

Youtube: https://youtu.be/QTqBWGBC70w

B站: https://www.bilibili.com/video/BV1bt4y1X7rJ/

Problem Statement

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.

Problem link

Video Tutorial

You can find the detailed video tutorial here

  • Youtube
  • B站

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

References
  • Leetcode official solution