Leetcode 2651.计算列车到站时间

news2024/11/24 17:25:33

 

给你一个正整数 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取余,这也是我理解的模这个概念出现的原因和用法。那么了解了这点问题就可以解决了

三、步骤

四、实现 

C语言:

错误示范:

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

错误了:

错误理解及原因:

这个错误和警告消息是来自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. **测试示例的重要性**:示例提供了清晰的视图,说明了函数应该如何工作,并为我们提供了测试我们解决方案的机会。

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

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/937649.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机系统真题

计算机系统真题 考点计算机系统存储体系磁盘调度算法 考点 计算机系统 PC找到指令&#xff0c;存储到IR中 根据ID分析指令的操作&#xff0c;并执行指令,AR访问操作数 A pc存指令的地址 内存按照字节编址&#xff1a; 在统一单位&#xff0c;转换一下&#xff1a; 3x2的平方 …

飞腾E2000 UEFI使用设备树方式启动linux系统

以往我们使用uboot引导系统启动,是采用uboot引导设备树+内核+文件系统的方式。 那么使用UEFI如何通过设备树+内核+文件系统的方式进行引导呢?这篇文章主要就介绍了这种操作方法。 一、使用Buildroot交叉编译生成E2000 Linux系统 详细请参考嵌入式软件部提供的 E2000 Linux…

服务器部署前后端项目-SQL Father为例

hello~大家好哇&#xff0c;好久没更新博客了。现在来更新一波hhh 现在更新一下部署上的一些东西&#xff0c;因为其实有很多小伙伴跟我之前一样&#xff0c;很多时候只是开发了&#xff0c;本地前后端都能调通&#xff0c;也能用&#xff0c;但是没有部署到服务器试过&#x…

【FPGA零基础学习之旅#11】数码管动态扫描

&#x1f389;欢迎来到FPGA专栏~数码管动态扫描 ☆* o(≧▽≦)o *☆嗨~我是小夏与酒&#x1f379; ✨博客主页&#xff1a;小夏与酒的博客 &#x1f388;该系列文章专栏&#xff1a;FPGA学习之旅 文章作者技术和水平有限&#xff0c;如果文中出现错误&#xff0c;希望大家能指正…

React笔记(二)JSX

一、JSX JSX是javascript XML的简写&#xff0c;实际上是javascript的扩展&#xff0c;既有javascript的语法结构&#xff0c;又有XML的结构 1、JSX的规则要求 jsx必须要有一个根节点 如果不想产生无用的根标签&#xff0c;但是还要遵守JSX的语法的要求&#xff0c;可以使用…

Angular中使用drag and drop实现文件拖拽上传,及flask后端接收

效果&#xff1a;拖拽文件到组件上面时 边框变大变红 松手后发送到服务器(或者点击蓝字手动选择文件)并且把文件名显示在框内&#xff0c;美化还没做 html <div class"drapBox"><div id"drop" (dragenter)"dragenter($event)" (dragov…

AR界安卓在中国,Rokid引爆空间计算狂潮

击关注 文丨刘雨琦 你可能很难想象&#xff0c;在一个没有显示屏也没有鼠标的空间&#xff0c;仅凭一副AR眼镜和一台口袋主机&#xff0c;就能完成一篇5000字的文章。 没错&#xff0c;8月26日&#xff0c;在2023 Rokid Jungle 新品发布会现场&#xff0c;这样的场景正在真实…

前端如何走通后端接口

0 写在前面 现在基本都是前后端分离的项目了&#xff0c;那么前端小伙伴如何获取后端小伙伴接口呢&#xff1f; 1 条件 同一WiFi下&#xff0c;让后端小伙伴分享出自己的ip地址&#xff1a; 步骤1:winr调出运行界面 步骤2&#xff1a;cmd调出命令行窗口 步骤3&#xff1a;…

6. 激活层

6.1 非线性激活 ① inplace为原地替换&#xff0c;若为True&#xff0c;则变量的值被替换。若为False&#xff0c;则会创建一个新变量&#xff0c;将函数处理后的值赋值给新变量&#xff0c;原始变量的值没有修改。 import torch from torch import nn from torch.nn import …

第一次实验:Protocol Layers

第一次实验&#xff1a;Protocol Layers 捕获跟踪*Pick a URL and fetch it with* wget *or* curl*.* 检查跟踪数据包结构协议开销复用密钥*Which Ethernet header field is the demultiplexing key that tells it the next higher layer is IP?**Which IP header field is th…

关于亚马逊云科技云技能孵化营学习心得

1、活动介绍 本活动主要是面向想要全面了解亚马逊云科技 (Amazon Web Services) 云的个人&#xff0c;而不受特定技术角色的限制。内容包括亚马逊云科技云概念、亚马逊云科技服务、安全性、架构、定价和支持等等&#xff0c;此外还可以参加亚马逊的认证考试。 2、学习过程 该…

httpd协议与apache

1.http 相关概念 HTTP是处于应用层的协议&#xff0c;使用TCP传输层协议进行可靠的传送。因此&#xff0c;需要特别提醒的是&#xff0c;万维网是基于因特网的一种广泛因特网应用系统&#xff0c;且万维网采用的是HTTP&#xff08;80/TCP&#xff09;和 HTTPS&#xff08;443/…

计算机毕设 基于深度学习的人脸专注度检测计算系统 - opencv python cnn

文章目录 1 前言2 相关技术2.1CNN简介2.2 人脸识别算法2.3专注检测原理2.4 OpenCV 3 功能介绍3.1人脸录入功能3.2 人脸识别3.3 人脸专注度检测3.4 识别记录 4 最后 1 前言 &#x1f525; 这两年开始毕业设计和毕业答辩的要求和难度不断提升&#xff0c;传统的毕设题目缺少创新…

Autoware.universe部署02:高精Lanelet2地图的绘制

文章目录 引言Lanelet基础元素Lanelet2项目各个模块 一、安装Lanelet2项目1.1 安装依赖1.2 编译1.3 在ROS中使用lanelet2地图完成routing 二、Autoware Vector Map Builder绘制高精地图2.1 创建地图2.2 绘制车道线2.3 绘制路沿2.4 绘制停止线和交通灯2.5 绘制人行道2.6 绘制停车…

IntelliJ 中如何配置 Tomcat 调试

Tomcat 在 IntelliJ 中的配置要求首先你要下载 Tomcat。 设置服务器 在 IntelliJ 下面先选择 Run&#xff0c;然后选择配置运行配置。 在弹出的界面中&#xff0c;有一个编辑配置的选项。 然后在弹出的页面中选择添加。 选择 Tomcat 在弹出的添加页面中选择添加 Tomcat&…

数据分析基础-数据可视化学习笔记03-可视化的符号与表示-图形符号学

概念 图型符号学&#xff08;Cartographic Symbolization&#xff09;是地图学领域中的一个重要概念&#xff0c;涉及到如何使用不同的符号、颜色、图案和标记来在地图上表示地理信息和数据。图型符号学旨在传达地理信息&#xff0c;使得地图能够清晰、有效地传达各种空间数据…

四、前端监控之接入Sentry到项目

前言 一、前端监控之异常监控 二、前端监控之方案调研 三、前端监控之Sentry的介绍 以上是这个专题之前的几篇文章&#xff0c;欢迎观摩 Sentry的接入 1、新建项目 在sentry后台登陆后&#xff0c;进入监控项目的界面&#xff0c;如&#xff1a; 点击右上角的 add new p…

用Go编写ChatGPT插件

ChatGPT插件平台有望成为影响深远的"下一件大事"&#xff0c;因此对于开发者来说&#xff0c;有必要对ChatGPT插件的开发有一定的了解。原文: Writing a ChatGPT Plugin With Go[1] 我工作的附带福利之一是偶尔可以接触试用一些很酷的新技术&#xff0c;最近的一项技…

详细介绍如何基于ESP32实现低功耗的电子纸天气显示器--附完整源码

实现界面展示 这是一款天气显示器,由支持 wifi 的 ESP32 微控制器和 7.5 英寸电子纸(又名电子墨水)显示器供电。当前和预测的天气数据是从 OpenWeatherMap API 获取的。传感器为显示屏提供准确的室内温度和湿度。 该项目在睡眠时消耗约 14μA,在约 10 秒的清醒期…

Tomcat 部署时 war 和 war exploded区别

在 Tomcat 调试部署的时候&#xff0c;我们通常会看到有下面 2 个选项。 是选择war还是war exploded 这里首先看一下他们两个的区别&#xff1a; war 模式&#xff1a;将WEB工程以包的形式上传到服务器 &#xff1b;war exploded 模式&#xff1a;将WEB工程以当前文件夹的位置…