LeetCode 1344. 时钟指针的夹角

简介: LeetCode 1344. 时钟指针的夹角

LeetCode 1344. 时钟指针的夹角


Table of Contents

中文版:

英文版:

My answer:

解题报告:

中文版:

给你两个数 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 以内的结果都被视为正确结果。

英文版:

Given two numbers, hour and minutes. Return the smaller angle (in sexagesimal units) 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.

My answer:

import math
class Solution:
    def angleClock(self, hour: int, minutes: int) -> float:
        res = 0
        m = minutes * 6   # 分针的度数
        if hour == 12:
            h = 0  # 特判:如果为0点,则为0°
        h = (hour + minutes / 60) * 360/12  # 时针的度数
        res = abs(m - h)
        if res > 180:
            res = 360 - res
        return res

解题报告:

本题其实是一道模拟题,只要懂得基本数学知识即可。

假设零点为 0 度,求出分针的度数(一分钟是 6 度),时针的度数(一小时是30度,且随着分针不同时针也会走,所以是 hour + minutes / 60)。之后求夹角即为两个度数之差。此事要注意的是,题目要求求锐角,所以需要特判,如果结果 res > 180,则要 360° - res。

相关文章
|
10天前
|
算法 容器
【算法】——双指针算法合集(力扣)
移动零,复写零,快乐数,盛最多水的容器,有效三角形的个数,和为s的两个数(查找总价格为目标值的两个商品 ),三数之和,四数之和
|
5月前
|
Python
【Leetcode刷题Python】138. 复制带随机指针的链表
LeetCode上题目“138. 复制带随机指针的链表”的Python解决方案,包括两种方法:一种是在每个节点后复制一个新节点然后再分离出来形成新链表;另一种是构建一个字典来跟踪原始节点与其副本之间的映射关系,从而处理新链表的构建。
28 1
|
8月前
|
算法
[优选算法]——双指针——Leetcode——1089. 复写零
[优选算法]——双指针——Leetcode——1089. 复写零
|
7月前
|
算法
【经典LeetCode算法题目专栏分类】【第7期】快慢指针与链表
【经典LeetCode算法题目专栏分类】【第7期】快慢指针与链表
|
7月前
|
算法 容器
【经典LeetCode算法题目专栏分类】【第1期】左右双指针系列:盛最多水的容器、接雨水、回文子串、三数之和
【经典LeetCode算法题目专栏分类】【第1期】左右双指针系列:盛最多水的容器、接雨水、回文子串、三数之和
|
7月前
|
存储 SQL 算法
LeetCode 题目 117:填充每个节点的下一个右侧节点指针 II
LeetCode 题目 117:填充每个节点的下一个右侧节点指针 II
|
7月前
|
存储 SQL 算法
LeetCode 题目 116:填充每个节点的下一个右侧节点指针
LeetCode 题目 116:填充每个节点的下一个右侧节点指针
|
7月前
|
存储 算法 数据挖掘
LeetCode 题目 88:双指针\直接\递归\插入排序\归并排序 实现合并两个有序数组
LeetCode 题目 88:双指针\直接\递归\插入排序\归并排序 实现合并两个有序数组
|
7月前
|
存储 算法 数据挖掘
LeetCode第十六题: 掌握双指针技巧 最接近的三数之和 【python】
LeetCode第十六题: 掌握双指针技巧 最接近的三数之和 【python】
|
8月前
|
算法
"刷题记录:哈希表+双指针 | leetcode-2465. 不同的平均值数目 "
该文段是一篇关于编程题目的解答,主要讨论如何找到数组中所有不同平均值的个数。作者首先使用排序和哈希集来解决,将数组转为列表排序后,通过双指针计算平均值并存入哈希集以去重。然后,作者发现可以优化方案,通过双指针在排序后的数组中直接计算两数之和,用哈希集记录不重复的和,从而避免实际计算平均值,提高了算法效率。最终代码展示了这两种方法。
65 0