0
点赞
收藏
分享

微信扫一扫

基本算法练习-路灯问题

伢赞 2022-07-12 阅读 59


  路灯问题:

       类似于 移动蜂窝网,求蜂窝的最小覆盖距离只不过这里换成了一维的。

代码如下:

#include <iostream>
#include<algorithm>

using namespace std;

int main(){
int lampNum;
int len;
int* lampArray;
lampArray=new int;
double d=0.0;
cin>>lampNum;
cin>>len;
for(int i=0;i<lampNum;i++){
cin>>lampArray[i];
}
sort(lampArray,lampArray+lampNum);
for(int i=1;i<lampNum-1;i++){
d = max(d,(lampArray[i+1]-lampArray[i])/2.0 );
}
d=max(d,(double)lampArray[0]);
d=max(d,(double)(len-lampArray[lampNum-1]));
delete lampArray;
printf("%.2f",d);
return 0;
}

   结果方面应该是正确的,但是测试没通过,不知道什么原因。 

  理解:

     这里实际上是使用了 条件代换的思想,将求覆盖长度最小,等价为求间距最大

     此外,algorithm库中,包含了很多挺好的函数,使用十分方便。 

举报

相关推荐

0 条评论