LeetCode 1344. 时钟指针的夹角

题目描述

1344. 时钟指针的夹角

思路分析

解法一:角度计算(推荐)

核心思路

  • 分钟指针角度为 6 * minutes
  • 时针角度为 30 * (hour % 12) + 0.5 * minutes
  • 取两角差的最小值 min(diff, 360 - diff)


复杂度分析

  • 时间复杂度:O(1)。
  • 空间复杂度:O(1)。
class Solution {
    public double angleClock(int hour, int minutes) {
        double minuteAngle = 6.0 * minutes;
        double hourAngle = 30.0 * (hour % 12) + 0.5 * minutes;
        double diff = Math.abs(hourAngle - minuteAngle);
        return Math.min(diff, 360.0 - diff);
    }
}
import "math"

func angleClock(hour int, minutes int) float64 {
    minuteAngle := 6.0 * float64(minutes)
    hourAngle := 30.0*float64(hour%12) + 0.5*float64(minutes)
    diff := math.Abs(hourAngle - minuteAngle)
    if diff > 360.0-diff {
        return 360.0 - diff
    }
    return diff
}

相似题目

题目 难度 考察点
258. 各位相加 简单 数学
492. 构造矩形 简单 数学
728. 自除数 简单 数学
812. 最大三角形面积 简单 几何
1232. 缀点成线 简单 几何
本文作者:
本文链接: https://hgnulb.github.io/blog/2022/46372050
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处!