Leetcode 2651.计算列车到站时间

 

给你一个正整数 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. **测试示例的重要性**:示例提供了清晰的视图,说明了函数应该如何工作,并为我们提供了测试我们解决方案的机会。

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

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

什么样的人适合开抖店?最后一个条件必须满足!抖店开通门槛如下

我是王路飞。 作为现在热门的电商项目&#xff0c;抖店显然已经取代直播带货&#xff0c;成为了普通人在抖音卖货的新渠道&#xff0c;毕竟做账号和开直播对普通人来说&#xff0c;门槛太高了。 那么&#xff0c;在抖音开店&#xff0c;是谁都可以开吗&#xff1f;开店有什么…

K8S最新版本集群部署(v1.28) + 容器引擎Docker部署(上)

温故知新 &#x1f4da;第一章 前言&#x1f4d7;背景&#x1f4d7;目的&#x1f4d7;总体方向 &#x1f4da;第二章 基本环境信息&#x1f4d7;机器信息&#x1f4d7;软件信息&#x1f4d7;部署用户kubernetes &#x1f4da;第三章 Kubernetes各组件部署&#x1f4d7;安装kube…

基于MATLAB/Simulink的三相并网逆变器dq阻抗建模及扫频仿真

目录 整体系统介绍理论模型MATLAB实现 基于Simulink的阻抗扫频仿真整体思路注意事项流程框图 其他 本文主要介绍三相并网逆变器dq阻抗建模的相关知识&#xff0c;和大家分享一下怎么使用MATLAB/Simulink来进行理论模型的搭建以及如何通过扫频获取阻抗模型&#xff0c;一方面是给…

分类预测 | MATLAB实现SSA-CNN-SVM基于麻雀算法优化卷积支持向量机分类预测

分类预测 | MATLAB实现SSA-CNN-SVM基于麻雀算法优化卷积支持向量机分类预测 目录 分类预测 | MATLAB实现SSA-CNN-SVM基于麻雀算法优化卷积支持向量机分类预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 MATLAB实现SSA-CNN-SVM基于麻雀算法优化卷积支持向量机分类预测…

k8s的学习篇1

一 k8s的概念 1.1 k8s k8s是一个轻量级的&#xff0c;用于管理容器化应用和服务的平台。通过k8s能够进行应用的自动化部署和扩容缩容。 1.2 k8s核心部分 1.prod: 最小的部署单元&#xff1b;一组容器的集合&#xff1b;共享网络&#xff1b;生命周期是短暂的&#xff1b; …

hive-列转行

转成 select customer_code,product_type from temp.temp_xx LATERAL VIEW explode(SPLIT(product_types,,)) table_tmp AS product_type where customer_code K100515182

数据结构(Java实现)-优先级队列(堆)

队列是一种先进先出(FIFO)的数据结构&#xff0c;但有些情况下&#xff0c;操作的数据可能带有优先级&#xff0c;一般出队 列在这种情况下&#xff0c;数据结构应该提供两个最基本的操作&#xff0c;一个是返回最高优先级对象&#xff0c;一个是添加新的对象。 这种数据结构就…

Seaborn绘制热力图的子图

Seaborn绘制热力图的子图 提示&#xff1a;如何绘制三张子图 绘制的时候&#xff0c;会出现如下问题 &#xff08;1&#xff09;如何绘制1*3的子图 &#xff08;2&#xff09;三个显示条&#xff0c;如何只显示最后一个 提示&#xff1a;下面就展示详细步骤 Seaborn绘制热力…

权限提升-手工-系统权限提升

权限提升基础信息 1、具体有哪些权限需要我们了解掌握的&#xff1f; 后台权限&#xff0c;网站权限&#xff0c;数据库权限&#xff0c;接口权限&#xff0c;系统权限&#xff0c;域控权限等 2、以上常见权限获取方法简要归类说明&#xff1f; 后台权限&#xff1a;SQL注入,数…

8.28day48

198. 打家劫舍 - 力扣&#xff08;LeetCode&#xff09; 知识点&#xff1a;动规五部 1.dp数组的含义&#xff1a;dp数组表示打劫改房间的最大收益 2.递推公式&#xff1a;打劫i家&#xff1a;从后往前推 我们如果打劫第i家 那么第i-1家绝对不可能背打劫 所以&#xff1a;dp…

【100天精通python】Day46:python网络编程基础与入门

目录 专栏导读 1 网络编程的基础 2. 基本概念和协议 2.1 计算机网络基础 2.2 网络协议、IP地址、端口号 2.3 常见网络协议 3. 套接字编程 3.1 套接字的基本概念 3.2 套接字的基本操作 3.3 套接字通信模型和方法&#xff1a;send、recv 3.3.1 TCP通信模型 3.3.2 U…

Linux系统编程:线程互斥

目录 一. 与线程互斥相关的概念 二. 线程安全问题 2.1 多个执行流访问临界区资源引发线程安全问题 2.2 可重入函数和线程安全的关系 三. 互斥锁 mutex 3.1 互斥锁功能 3.2 互斥锁的使用 3.3 互斥锁的实现原理 四. 死锁问题 四. 总结 一. 与线程互斥相关的概念 临界…

9.oracle中sign函数

在Oracle/PLSQL中, sign 函数返回一个数字的正负标志. 语法如下&#xff1a;sign( number ) number 要测试标志的数字. If number < 0, then sign returns -1. If number 0, then sign returns 0. If number > 0, then sign returns 1. 应用于: Oracle 8i, Oracle …

mysql my.ini、登录、用户相关操作、密码管理、权限管理、权限表,角色管理

my.ini 配置文件格式 登录mysql mysql -h hostname | IP -P port -u username -p database -e “select 语句”&#xff1b; 创建用户、修改用户、删除用户 create user ‘zen’ identified by ‘密码’ ## host 默认是 % create user ‘zen’‘localhost’ identified by ‘密…

<高阶数据结构>图

图 必要概念大致用途 存图邻接矩阵邻接表 遍历BFS(广度优先)DFS(深度优先) 最小生成树Kruskal算法Prim算法 寻最短路径Dijkstra算法 必要概念 图根据有无方向分为&#xff0c;有向图和无向图 组成&#xff1a;G (V, E) 顶点集合 V边的集合 E G(Graph),V(Vertex),E(Edge) 图可…

Docker容器:docker consul的注册与发现及consul-template

Docker容器&#xff1a;docker consul的注册与发现及consul-template守护进程 一.docker consul的注册与发现介绍 1.什么是服务注册与发现 &#xff08;1&#xff09;服务注册与发现是微服务架构中不可或缺的重要组件。 &#xff08;2&#xff09;为解决服务都是单节点的&a…

李沐pytorch学习-BatchNormalization

一、意义 在使用较深的网络时&#xff0c;BatchNormalization&#xff08;批量归一化&#xff09;几乎是必需的&#xff0c;可以加速收敛。 对于图1所示的全连接层神经网络&#xff0c;输出节点的GroundTruth为&#xff0c;损失函数为&#xff0c;则损失对权重的梯度为&#xf…

接口测试总结分享(http与rpc)

接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换&#xff0c;传递和控制管理过程&#xff0c;以及系统间的相互逻辑依赖关系等。 一、了解一下HTTP与RPC 1. HTTP&#xff08;H…

YOLOv5屏蔽区域检测(选择区域检测)

YOLOv5屏蔽区域检测以及选择区域检测 前期准备labelme选择mask区域 代码改动 前期准备 思路就是通过一个mask掩膜&#xff0c;对我们想要屏蔽或者选择的区域进行遮挡处理&#xff0c;在推理的时候&#xff0c;将有mask掩膜的图像输入&#xff0c;将最后的结果显示在原始图像上…

【Go 基础篇】Go语言中的自定义错误处理

错误是程序开发过程中不可避免的一部分&#xff0c;而Go语言以其简洁和高效的特性闻名。在Go中&#xff0c;自定义错误&#xff08;Custom Errors&#xff09;是一种强大的方式&#xff0c;可以为特定应用场景创建清晰的错误类型&#xff0c;以便更好地处理和调试问题。本文将详…