Leetcode 2651.计算列车到站时间

这篇具有很好参考价值的文章主要介绍了Leetcode 2651.计算列车到站时间。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Leetcode 2651.计算列车到站时间,【Letcode】每日一题,leetcode,算法,c++,C

 文章来源地址https://www.toymoban.com/news/detail-677175.html

给你一个正整数 arrivalTime 表示列车正点到站的时间(单位:小时),另给你一个正整数 delayedTime 表示列车延误的小时数。

返回列车实际到站的时间。

注意,该问题中的时间采用 24 小时制。

示例 1:

输入:arrivalTime = 15, delayedTime = 5 
输出:20 
解释:列车正点到站时间是 15:00 ,延误 5 小时,所以列车实际到站的时间是 15 + 5 = 20(20:00)。

示例 2:

输入:arrivalTime = 13, delayedTime = 11
输出:0
解释:列车正点到站时间是 13:00 ,延误 11 小时,所以列车实际到站的时间是 13 + 11 = 24(在 24 小时制中表示为 00:00 ,所以返回 0)。

提示:

  • 1 <= arrivaltime < 24
  • 1 <= delayedTime <= 24

我的答案:

一、信息

1.给我正整数arT-表示列车正点到站时间

2.delT列车延误的时间

3.求列车实际到站的时间

4.24h制

二、分析

1.刚开始觉得没什么好分析的三个条件直接的关系就是factTime=arT+delT,但是检查分析的时候发现了问题。

2.问题出现

(1)24小时制的限制

如果正点为23点,延误了两小时那么会怎么样呢?如果是这样根据已有给出的式子我会得到25,但是是24h制这就意味着每次相加都要先看看满不满足factT<24,如果不满足很简单那么直接就%24即对24取余,这也是我理解的模这个概念出现的原因和用法。那么了解了这点问题就可以解决了

三、步骤

Leetcode 2651.计算列车到站时间,【Letcode】每日一题,leetcode,算法,c++,C

四、实现 

C语言:

错误示范:

int findDelayedArrivalTime(int arrivalTime, int delayedTime){
    int factTime;
    factTime=arrivalTime+findDelayedArrivalTime;
    if(factTime>24){
        factTime=factTime%24;
    }
    printf("%d",factTime);
}

错误了:

Leetcode 2651.计算列车到站时间,【Letcode】每日一题,leetcode,算法,c++,C

错误理解及原因:

这个错误和警告消息是来自C编译器的输出,具体地,是针对名为 `solution.c` 的源文件。从给定的信息中,我们可以识别出以下几点:

1. **警告1**:`assignment to ‘int’ from ‘int (*)(int, int)’ makes integer from pointer without a cast [-Wint-conversion]`。

    这个警告发生在文件 `solution.c` 的第3行。它告诉我们代码试图将一个指向函数的指针赋给一个整数变量 (`int`),而没有进行适当的类型转换。代码中的相关部分是:
    ```c
    factTime = arrivalTime + findDelayedArrivalTime;
    ```
    这里的问题是 `findDelayedArrivalTime` 可能是一个函数,而不是一个整数值。如果想调用这个函数并使用它的返回值,那么你需要使用相应的参数来调用它,如 `findDelayedArrivalTime(arg1, arg2)`。

2. **错误**:`control reaches end of non-void function [-Werror=return-type]`。

    这个错误发生在文件 `solution.c` 的第8行。它告诉我们一个非`void`函数在其结束前没有返回任何值。每一个声明为返回某种类型的函数(除了`void`)都必须在所有代码路径上返回该类型的值。例如,如果函数声明为返回`int`,则该函数必须确保在其结束之前返回一个`int`值。

3. **注意**: `cc1: some warnings being treated as errors`。

    这告诉我们,由于某些编译设置,一些通常只被视为警告的事项现在被当作错误来处理。这通常是为了确保代码的高质量或满足某些编码标准。

总结:要修复这些问题,你需要:
- 正确调用 `findDelayedArrivalTime` 函数(如果它确实是一个函数)并使用其返回值。
- 确保 `findDelayedArrivalTime` 函数在所有可能的路径上都有返回值。

正确答案:

英雄师傅的题解:

int findDelayedArrivalTime(int arrivalTime, int delayedTime){
    return(arrivalTime+delayedTime)%24;
}

总结:

从这道题目中,我们可以学到以下几点:

1. **模运算的应用**:这道题目明显地展示了模运算(`%`)的实用性。在许多情况下,尤其是涉及到循环或周期性事件时(例如24小时制、星期、年份中的天数等),模运算是一个非常有用的工具。

2. **时间表示的巧妙**:24小时制是时间表示的一种方式,当时间达到24时,它会回到0。这种表示方式的理解和处理对于某些编程问题来说是非常关键的。

3. **问题简化**:尽管时间的处理在现实生活中可能会更复杂(考虑到分钟、秒等),但为了这个特定的问题,我们仅关注小时。这表明,简化问题,聚焦于主要的挑战,可以帮助我们更容易地找到解决方案。

4. **错误和警告的解读**:在之前的错误提示中,我们学到了如何解读编译器的错误和警告信息,以及如何从这些提示中修正代码。

5. **函数的返回值**:函数的返回值类型和它实际返回的类型之间应该保持一致。如果一个函数声明为返回一个整数,那么它应该在所有代码路径上确实返回一个整数。

6. **明确的函数命名**:函数名`findDelayedArrivalTime`清晰地表明了它的目的,这有助于代码的可读性。

7. **测试示例的重要性**:示例提供了清晰的视图,说明了函数应该如何工作,并为我们提供了测试我们解决方案的机会。

总之,这道题不仅测试了我的编程技能,还增强了我处理周期性事件、解读错误和警告以及编写清晰代码的能力。

 Leetcode 2651.计算列车到站时间,【Letcode】每日一题,leetcode,算法,c++,C

 

到了这里,关于Leetcode 2651.计算列车到站时间的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • LeetCode每日一题:2594. 修车的最少时间(2023.9.7 C++)

    目录 2594. 修车的最少时间 题目描述: 实现代码与解析: 二分 原理思路:         给你一个整数数组  ranks  ,表示一些机械工的  能力值  。 ranksi  是第  i  位机械工的能力值。能力值为  r  的机械工可以在  r * n2  分钟内修好  n  辆车。 同时给你一个整数  cars

    2024年02月09日
    浏览(37)
  • 【LeetCode每日一题】2809. 使数组和小于等于 x 的最少时间

    2024-1-19 2809. 使数组和小于等于 x 的最少时间 思路: 获取两个列表的长度n,并初始化一个二维数组f,用于存储最优解。 定义一个二维数组nums,用于存储输入的两个列表中的元素,并按照第二列元素进行排序。 使用动态规划的方法,通过遍历nums数组,计算最优解。其中,

    2024年01月21日
    浏览(38)
  • 【LeetCode每日一题】2645. 构造有效字符串的最少插入数(计算组数+动态规划+考虑相邻字母)

    2024-1-11 2645. 构造有效字符串的最少插入数 方法一:计算组数 1.用count统计,能构成几组abc 2.如果当前字符大于之前字符,说明还在组内,不更新 3.如果当前字符小于等于之前字符,说明不是同一组的abc,组数更新 4.最终返回值:组数*3,再减去原本的字符数,就是要插入的次数

    2024年01月17日
    浏览(45)
  • leetcode每日一题44

    图论 dfs/bfs dfs代码框架 思路:本题要求找到被x围绕的陆地,所以边界的陆地O肯定不符合条件。那么我们只要从周边找到陆地O然后 通过 dfs或者bfs 将周边靠陆地且相邻的陆地O都变成A,然后再去重新遍历地图的时候,把剩下的O变成X,再把所有的A变成O。 确认递归函数,参数

    2024年01月19日
    浏览(35)
  • 【LeetCode每日一题】——575.分糖果

    哈希表 简单 575.分糖果 Alice 有 n 枚糖,其中第 i 枚糖的类型为 candyType[i] 。Alice 注意到她的体重正在增长,所以前去拜访了一位医生。 医生建议 Alice 要少摄入糖分,只吃掉她所有糖的 n / 2 即可(n 是一个偶数)。Alice 非常喜欢这些糖,她想要在遵循医生建议的情况下,尽可

    2024年02月13日
    浏览(60)
  • 每日一题(LeetCode)----二分查找(一)

    给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 示例 1: 示例 2: 示例 3: 提示: 1 = nums.length = 104 -104 = nums[i] = 104 nums 为 无重复元素 的 升序 排列数

    2024年02月08日
    浏览(41)
  • 【每日一题】Leetcode - 283. 移动零

    Leetcode - 283. 移动零 从右向左遍历,遇到0,就将后面所有元素前移,同时更新长度,使其减1,因为移动n次,倒数n位就被0占据,后续操作可忽略 前面的操作,从右向左,每次遇到0移动都要跑半个数组,慢在整体前移; 换个思路,从左向右,记录首个0的位置,将后面的第一

    2024年02月11日
    浏览(36)
  • LeetCode每日一题之 复写0

    目录 题目介绍: 算法原理: 特殊位置处理: 代码实现: 题目链接:. - 力扣(LeetCode) 这种对数组元素进行修改,移动的题目我们仍然可以使用双指针法,不过我们按照常规思路从左到右处理数组,不难发现如下这种问题: 当cur指向1时,让dest下一个元素复写cur指向的元素

    2024年04月23日
    浏览(25)
  • 每日一题:LeetCode-75. 颜色分类

    前言: 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈    🔎🔎如果说代码有灵魂,那么它的灵魂一定是👉👉 算法 👈👈,因此,想要写出💚优美的程序💚,核心算法是必不可少的,少年,你渴望力量吗😆😆,想掌握程序的灵魂吗❓❗️那么就必须踏上这样一条漫长

    2024年02月04日
    浏览(36)
  • 【LeetCode每日一题】——85.最大矩形

    矩阵 困难 85.最大矩形 给定一个仅包含 0 和 1 、大小为 rows x cols 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。 示例 1: 输入:matrix = [[“1”,“0”,“1”,“0”,“0”],[“1”,“0”,“1”,“1”,“1”],[“1”,“1”,“1”,“1”,“1”],[“1”,“0”,“0”,“1”,“

    2024年02月13日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包