华为机试题-单车道汽车通行时间-Java
代码在最后面
1 题目描述
M(1 ≤ M ≤ 20)辆车需要在一条不能超车的单行道到达终点,起点到终点的距离为 N(1 ≤ N ≤ 400)。
速度快的车追上前车后,只能以前车的速度继续行驶,求最后一辆车到达目的地花费的时间。
注:每辆车固定间隔 1 小时出发,比如第一辆车 0 时出发,第二辆车 1 时出发,依次类推
2 输入描述
第一行两个数字:M N,分别代表车辆数和到终点的距离,以空格分隔。
接下来 M 行,每行一个数字 S,代表每辆车的速度。
0 < S < 30
3 输出描述
最后一辆车到达目的地花费的时间
4 示例
4.1 示例1
输入
2 10
4
2
输出
5
解释:
第一行,表示2辆车,起点到终点的距离为10个单位。
第一辆车的速度为4,则第一辆车到终点的时间 2.5 = 10 / 4
第二辆车的速度为2,则第二辆车到终点的时间 5 = 10 / 2
由于第一辆车比第二辆车快,所以不存在阻塞问题,即最终答案为 5
4.1 示例2
输入
2 10
2
4
输出
4
解释:
第一行,表示2辆车,起点到终点的距离为10个单位。
第一辆车的速度为2,则第一辆车到终点的时间 5 = 10 / 2
第二辆车的速度为4,则第二辆车到终点的时间 2.5 = 10 / 4
由于第一辆车比第二辆车慢,所以存在阻塞问题,第二辆车并不能用2.5个时间单位到达目的地。但由于车辆是每隔1个时间单位出发, 1 + 2.5 = 3.5 < 5,所以第二辆车的到车时间是 5,但发车时间为 1,即第二辆车用时 4 = 5 -1 个时间单位。
5 代码解题
第二个示例是我写的,其实根据第二个示例就能看出来,这个题怎么解了。
假设没有阻塞问题,即后一辆车不会被前一辆车阻塞,只考虑发车时间和车速。
记当前发车为第 i 辆车,发车时间则为 start = i - 1,记车速为 v,记总路程为 S(也就是N),那么可以计算出每辆车到达终点的最终时间点为 h = start + S / v = i - 1 + S / v。【最终时间不是车辆通过路段的用时,而是一个时间点】
然后代入阻塞问题中,已知后一辆车会被前一辆车阻塞,记MaxH为所有车到达终点的时间最大值,记第X辆车到终点的时间为 MaxH。那么可以得出结论,1..X辆车必定在MaxH之前到达,不考虑, X..M辆车必定不能在MaxH之前到达终点。由此可以计算出,最后一辆车的用时为 T = MaxH -start = MaxH - (i - 1)
代入示例二,进行思路验证:
2 10 // 两辆车,路程10个单位
2 // 第一辆车,0点发车,车速单位为2,最终到达终点时间点 5 = 0 + 10 / 2
4 // 第一辆车,1点发车,车速单位为4,最终到达终点时间点 3.5 = 1 + 10 / 4
--- 代入上述公式
所有车到达终点的时间最大值 MaxH = 5
最后一辆车用时 T = MaxH - (i - 1) = 5 - (2 - 1) = 4
符合预期,完美
解题代码
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);String line = scanner.nextLine();String[] split = line.split(" ");final int M = Integer.parseInt(split[0]);final int N = Integer.parseInt(split[1]);double maxH = 0;// i 表示发车时间,i + 1 表示发车序号,i = 0 < M 循环也是 M 次,所以省略车序号计算for (int i = 0; i < M; i++) {// 车速度int v = scanner.nextInt();maxH = Math.max(maxH, (double) N / v + i);}// M - 1 表示最后一辆车发车时间点double time = maxH - (M - 1);scanner.close();System.out.println(time);}
}相关文章:
华为机试题-单车道汽车通行时间-Java
代码在最后面 1 题目描述 M(1 ≤ M ≤ 20)辆车需要在一条不能超车的单行道到达终点,起点到终点的距离为 N(1 ≤ N ≤ 400)。 速度快的车追上前车后,只能以前车的速度继续行驶,求最后一辆车到达…...
6-5,web3浏览器链接区块链(react+区块链实战)
6-5,web3浏览器链接区块链(react区块链实战) 6-5 web3浏览器链接区块链(调用读写合约与metamask联动) 6-5 web3浏览器链接区块链(调用读写合约与metamask联动) 这里就是浏览器端和智能合约的交…...
C# 多态性
C# 多态性 介绍 多态性是面向对象编程(OOP)的一个核心概念,它允许不同类的对象对同一消息做出响应,并产生不同的结果。在C#中,多态性主要通过继承、接口和虚方法来实现。本文将深入探讨C#中的多态性,包括其原理、实现方式以及在实际编程中的应用。 原理 多态性允许将…...
Visual Studio 安装程序无法执行修复或更新
一.问题场景 出现问题的场景:当你的VS已经安装但是无法在工具中下载新组件或者卸载了当时一直无法安装。 二.问题原因 如果计算机上的 Visual Studio 实例已损坏,则可能会出现此问题。 三.解决方法 如果之前尝试修复或更新 Visual Studio 失败&…...
C#与PLC通信——如何设置电脑IP地址
前言: 我们与PLC通过以太网通信时,首先要做的就是先设置好电脑的IP,这样才能实现上位机电脑与PLC之间的通信,并且电脑的ip地址和PLC的Ip地址要同处于一个网段,比如电脑的Ip地址为192.168.1.1,那么PLC的Ip地…...
Milvus 核心设计(1) ---- 数据一致性的等级及使用场景
目录 背景 Milvus的数据一致性 设置数据一致性等级 等级类型 PACELC定理 level 详细解释 Strong Bounded staleness Session Eventually 总结 背景 分布式上的可扩展性是个比较重要的concept。Chroma 核心之前写过了,他的最大优势在于轻量级且好用。Milvus相对Ch…...
EasyCVR视频技术:城市电力抢险的“千里眼”,助力抢险可视化
随着城市化进程的加速和电力需求的不断增长,电力系统的稳定运行对于城市的正常运转至关重要。然而,自然灾害、设备故障等因素常常导致电力中断,给城市居民的生活和企业的生产带来严重影响。在这种情况下,快速、高效的电力抢险工作…...
【Wamp】局域网设备访问WampServer | 使用域名访问Wamp | Wamp配置HTTPS
局域网设备访问WampServer 参考:https://www.jianshu.com/p/d431a845e5cb 修改Apache的httpd.conf文件 D:\Academic\Wamp\program\bin\apache\apache2.4.54.2\conf\httpd.conf 搜索 Require local 和Require all denied,改为Require all granted <…...
采用自动微分进行模型的训练
自动微分训练模型 简单代码实现: import torch import torch.nn as nn import torch.optim as optim# 定义一个简单的线性回归模型 class LinearRegression(nn.Module):def __init__(self):super(LinearRegression, self).__init__()self.linear nn.Linear(1, 1) …...
k8s怎么配置secret呢?
在Kubernetes中,配置Secret主要涉及到创建、查看和使用Secret的过程。以下是配置Secret的详细步骤和相关信息: ### 1. Secret的概念 * Secret是Kubernetes用来保存密码、token、密钥等敏感数据的资源对象。 * 这些敏感数据可以存放在Pod或镜像中&#x…...
算法篇 滑动窗口 leetcode 长度最小的子数组
长度最小的子数组 1. 题目描述2. 算法图分析2.1 暴力图解2.2 滑动窗口图解 3. 代码演示 1. 题目描述 2. 算法图分析 2.1 暴力图解 2.2 滑动窗口图解 3. 代码演示...
数据库作业d8
要求: 一备份 1 mysqldump -u root -p booksDB > booksDB_all_tables.sql 2 mysqldump -u root -p booksDB books > booksDB_books_table.sql 3 mysqldump -u root -p --databases booksDB test > booksDB_and_test_databases.sql 4 mysql -u roo…...
前后端数据交互设计到的跨域问题
前后端分离项目的跨域问题及解决办法 一、跨域简述 1、问题描述 这里前端vue项目的端口号为9000,后端springboot项目的端口号为8080 2、什么是跨域 当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域 当前页面url被请求页面url是否…...
非洲猪瘟监测设备的作用是什么?
TH-H160非洲猪瘟监测设备的主要作用是迅速、准确地检测出非洲猪瘟病毒,从而帮助控制和预防疫情的扩散。这些设备利用先进的生物传感技术和PCR分子生物学方法,能够在极短的时间内提供精确的检测结果<sup>1</sup><sup>2</sup><…...
移动硬盘损坏无法读取?专业恢复策略全解析
在数字化信息爆炸的今天,移动硬盘作为我们存储和传输大量数据的重要工具,其安全性和稳定性直接关系到个人与企业的数据安全。然而,当移动硬盘突然遭遇损坏,无法正常读取时,我们该如何应对?本文将深入探讨移…...
神经网络以及简单的神经网络模型实现
神经网络基本概念: 神经元(Neuron): 神经网络的基本单元,接收输入,应用权重并通过激活函数生成输出。 层(Layer): 神经网络由多层神经元组成。常见的层包括输入层、隐藏层…...
java中压缩文件的解析方式(解析文件)
背景了解:java中存在IO流的方式,支持我们对文件进行读取(Input,从磁盘到内存)或写入(output,从内存到磁盘),那么我们在面对 “zip”格式或者 “rar” 格式的压缩文件&…...
巧用 VScode 网页版 IDE 搭建个人笔记知识库!
[ 知识是人生的灯塔,只有不断学习,才能照亮前行的道路 ] 巧用 VScode 网页版 IDE 搭建个人笔记知识库! 描述:最近自己在腾讯云轻量云服务器中部署了一个使用在线 VScode 搭建部署的个人Markdown在线笔记,考虑到在线 VScode 支持终…...
Jupyter Lab 使用
Jupyter Lab 使用详解 Jupyter Lab 是一个基于 Web 的交互式开发环境,提供了比 Jupyter Notebook 更加灵活和强大的用户界面和功能。以下是使用 Jupyter Lab 的详细指南,包括安装、基本使用、设置根目录和扩展功能等内容。 一、Jupyter Lab 安装与启动…...
MyBatis where标签内嵌foreach标签查询报错‘缺失右括号‘或‘命令未正确结束‘
MyBatis <where>标签内嵌<foreach>标签查询报错’缺失右括号’或’命令未正确结束’ <where>标签内嵌<foreach>标签 截取一段脱敏xml,写明大概意思 <select id"queryLogByIds" resultMap"BaseResultMap">SELE…...
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...
Java如何权衡是使用无序的数组还是有序的数组
在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...
Go 语言接口详解
Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...
苍穹外卖--缓存菜品
1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: ①每个分类下的菜品保持一份缓存数据…...
Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级
在互联网的快速发展中,高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司,近期做出了一个重大技术决策:弃用长期使用的 Nginx,转而采用其内部开发…...
相机从app启动流程
一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...
JS设计模式(4):观察者模式
JS设计模式(4):观察者模式 一、引入 在开发中,我们经常会遇到这样的场景:一个对象的状态变化需要自动通知其他对象,比如: 电商平台中,商品库存变化时需要通知所有订阅该商品的用户;新闻网站中࿰…...
免费PDF转图片工具
免费PDF转图片工具 一款简单易用的PDF转图片工具,可以将PDF文件快速转换为高质量PNG图片。无需安装复杂的软件,也不需要在线上传文件,保护您的隐私。 工具截图 主要特点 🚀 快速转换:本地转换,无需等待上…...
PostgreSQL——环境搭建
一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在࿰…...
深度学习之模型压缩三驾马车:模型剪枝、模型量化、知识蒸馏
一、引言 在深度学习中,我们训练出的神经网络往往非常庞大(比如像 ResNet、YOLOv8、Vision Transformer),虽然精度很高,但“太重”了,运行起来很慢,占用内存大,不适合部署到手机、摄…...
