【华为上机真题 2022】路灯照明
创始人
2024-04-09 04:57:48
0

🎈 作者:Linux猿

🎈 简介:CSDN博客专家🏆,华为云享专家🏆,Linux、C/C++、云计算、物联网、面试、刷题、算法尽管咨询我,关注我,有问题私聊!

🎈 关注专栏: 数据结构和算法成神路【精讲】优质好文持续更新中……🚀🚀🚀

🎈 欢迎小伙伴们点赞👍、收藏⭐、留言💬


目录

一、题目描述

1.1 输入描述

1.2 输出描述

1.3 测试样例

二、解题思路

三、代码实现

四、时间复杂度


注意:题目来源于网络用户分享,本文仅分享做题思路和方法,如有侵权请联系我删除!

一、题目描述

一条长 l 的笔直的街道上有 n 个路灯,若这条街的起点为 0,终点为 l,第 i 个路灯坐标为 ai ,每盏灯可以覆盖到的最远距离为 d,为了照明需求,所有灯的灯光必须覆盖整条街,但是为了省电,要使这个 d 最小,请找到这个最小的 d。

1.1 输入描述

每组数据第一行两个整数 n 和 l(n 大于 0 小于等于 1000,l 小于等于 1000000000 大于 0)。

第二行有 n 个整数(均大于等于 0 小于等于 l ),为每盏灯的坐标,多个路灯可以在同一点。

1.2 输出描述

输出答案,保留两位小数。

1.3 测试样例

示例1   输入输出示例仅供调试,后台判题数据一般不包含示例。

输入

7 15
15 5 3 7 9 14 0

输出

2.50

二、解题思路

在本题中,要使 d 最小,需要找到最大的间隔,此间隔的一半即是 d,需要注意的是:

(1)如果没有第 0 个路灯,那么,第一个路灯的间隔为第一个路径的坐标;

(2)如果最后一个路灯不等于 l,那么,最后一个路灯的间隔为长度 l 减去最后一个路灯的坐标; 

三、代码实现

代码实现如下所示。

#include 
#include 
#include 
using namespace std;int main()
{int n, m;while (cin>>n>>m) {int val;vectorg;for (int i = 0; i < n; ++i) { // 获取输入cin>>val;g.push_back(val);}//sort 排序sort(g.begin(), g.end());int ans = g[0];for (int i = 1; i < n; ++i) { // 寻找最大间隔ans = max(ans, g[i] - g[i - 1]);}ans = max(ans, m - g[n - 1]); // 处理最后一棵树cout<

四、时间复杂度

时间复杂度:O(nlogn)。

在上面代码中,时间主要消耗在排序上,排序时间复杂度为 O(nlogn), for 循环遍历的时间复杂度为 O(n),所以时间复杂度为 O(nlog)。


🎈 感觉有帮助记得「一键三连支持下哦!有问题可在评论区留言💬,感谢大家的一路支持!🤞猿哥将持续输出「优质文章回馈大家!🤞🌹🌹🌹🌹🌹🌹🤞


相关内容

热门资讯

美国加州州长将就国民警卫队部署... 当地时间6月9日,美国加州州长纽森在社交媒体上表示,将就国民警卫队部署问题对特朗普政府提起诉讼。 近...
基层医疗再迎政策红利,药师帮(... 智通财经获悉,6月9日,中办、国办印发《关于进一步保障和改善民着力解决群众急难愁盼的意见》,要求“推...
罗博特科:公司及子公司将严格按... 证券之星消息,罗博特科(300757)06月09日在投资者关系平台上答复投资者关心的问题。 投资者提...
广东博维创远科技等申请基于法律... 金融界2025年6月10日消息,国家知识产权局信息显示,广东博维创远科技有限公司;华南师范大学申请一...
知名男演员发长文道歉:“快四十... 6月9日,男星尹正发长文回应入圈12年,给“影迷”道歉,获得多位圈内人士力挺。 相关话题火速登顶热搜...
C罗赛前赛后都被问到亚马尔:请... 直播吧06月09日讯 欧国联决赛,葡萄牙点球大战战胜西班牙夺冠。在赛前赛后的新闻发布会上,均有记者向...
一定之规•党政机关厉行节约反对... 来源:中央纪委国家监委网站
电商培训中心管理制度:让你的培... 嘿,大家好!今天咱们聊聊电商培训中心的管理制度。别一听“管理制度”就觉得是啥高大上的东西,其实它就跟...
灵活就业人员也能享受公积金制度 据新华社电 日前,中共中央办公厅、国务院办公厅印发《关于进一步保障和改善民生着力解决群众急难愁盼的意...