1344.时钟指针的夹角:分别计算时针分针与0的夹角(模拟)

【LetMeFly】1344.时钟指针的夹角:分别计算时针分针与0的夹角(模拟)

力扣题目链接:https://leetcode.cn/problems/angle-between-hands-of-a-clock/

给你两个数 hour 和 minutes 。请你返回在时钟上,由给定时间的时针和分针组成的较小角的角度(60 单位制)。

 

示例 1:

输入:hour = 12, minutes = 30
输出:165

示例 2:

输入:hour = 3, minutes = 30
输出;75

示例 3:

输入:hour = 3, minutes = 15
输出:7.5

示例 4:

输入:hour = 4, minutes = 50
输出:155

示例 5:

输入:hour = 12, minutes = 0
输出:0

 

提示:

  • 1 <= hour <= 12
  • 0 <= minutes <= 59
  • 与标准答案误差在 10^-5 以内的结果都被视为正确结果。

解题方法:分别计算时针分针与0的夹角

时针与0的夹角怎么算?

按一圈12个刻度,每个刻度30°,时针走了$hour+\frac{minutes}{60}$个刻度。

(特别的,我们可以把12点等价为0点)

分针与0的夹角怎么算?

按一圈60个刻度,每个刻度6°,分针走了$minutes$个刻度。

时针分针最小夹角怎么算

$\min (夹角, 360-夹角)$,其中$夹角=|分针角度-时针角度|$。

时空复杂度分析

  • 时间复杂度$O(1)$
  • 空间复杂度$O(1)$

AC代码

C++

1
2
3
4
5
6
7
8
9
10
11
12
/*
* @LastEditTime: 2026-06-18 10:08:12
*/
class Solution {
public:
double angleClock(int hour, int minutes) {
double h = (hour % 12 + (double)minutes / 60) * 30;
double m = minutes * 6;
double diff = abs(h - m);
return min(diff, 360 - diff);
}
};

同步发文于CSDN和我的个人博客,原创不易,转载经作者同意后请附上原文链接哦~

千篇源码题解已开源


1344.时钟指针的夹角:分别计算时针分针与0的夹角(模拟)
https://blog.letmefly.xyz/2026/06/18/LeetCode 1344.时钟指针的夹角/
作者
发布于
2026年6月18日
许可协议