题目
标题:【华为OD考试真题】【Python版】
分值: 200 ’
一、题目正文
一条笔直的公路上安装了N个路灯,从位置0开始安装,路灯之间的距离是100m。每个路灯都有自己的照明半径,请计算第一个路灯和最后一个路灯之间,未照明区间的长度和。
输入描述:
第一行为一个数N,表示灯的个数,[1, 100000]
第二行为N个","分隔的数,表示路灯的照明半径,[1, 100*100000]
输出描述:
第一个路灯和最后一个路灯之间,未照明区间的长度和
举例:
输入:
8
10,10 ,10 ,10 ,10 ,10 ,10 ,10
输出:
560
输入:
6
50,20,60,120,30,230
输出:
50
参考题解
一、分析
这道题原来是考察区间的合并,但其实有简单解法:把路灯照亮 的地面具体化为(n-1)*100个0的列表,然后遍历我们每个路灯,将路灯能照到的范围内的0置位1,最后输出0的数量
二、代码
时间复杂度:O(n)
空间复杂度:O(n)