题目:一条直线有n条线段,例如[1,9] 和 [5,10]两条线段,则说线段的覆盖范围为9,如果多重覆盖,则只计算一次,例如[1,9] 和 [2,8]两条线段,则说线段的覆盖范围为8,即[2,8]在[1,9]里面不再计算。大米给出的表示是
class Segment{
int start;
int end;
}
最直接的做法,先排序,后计算:
// 插入排序
public static void sort(Segment[] seg) {
if (seg == null)
return;
//转换seg,保证每一个seg的start小于end
for(int i=0;i<seg.length;i++){
if(seg[i].start>seg[i].end){
int t = seg[i].start;
seg[i].start = seg[i].end;
seg[i].end = t;
}
}
//插入排序
for (int i = 1; i < seg.length; i++) {
int tempStart = seg[i].start;
int tempEnd = seg[i].end;
int j = i - 1;
while (j >= 0 && seg[j].start > tempStart) {
seg[j + 1].start = seg[j].start;
seg[j + 1].end = seg[j].end;
j--;
}
seg[j + 1].start = tempStart;
seg[j + 1].end = tempEnd;
}
}
下面计算覆盖数:
//计算距离,seg为已经排好序的
public static int seg(Segment[] seg){
if(seg==null)return -1;
if(seg.length==1)return seg[0].end-seg[0].start;
int p = 0,q = 0, sum = 0; //p,q为标记线段的起始和终止位置,sum为计算的距离总和
for(int i=1;i<seg.length;i++){
if(seg[i].start>seg[q].end){ //如果选择的线段起始点大于终止点的end,则把p到q的距离先加起来
sum+=(seg[q].end-seg[p].start);//然后至q和q等于新的i,这个时候i还没有加进sum
p = i;
q = i;
}else{ //如果选择的线段start小于终止点的end,分两种情况
if(seg[i].end>seg[q].end){ //1:如果选择的线段end大于终止点的end,则把i设置成新的
q = i; //2:如果选择的线段end小于终止点的end,什么都不做
}
}
}
sum += (seg[q].end-seg[p].start); //最后要加上没有计算的pq
return sum;
}
测试数据:[1,9] [5,7] [2,10] [11,12]
得到的结果:10
测试数据:[11,9] [2,7] [2,10] [11,18]
得到的结果:16
测试数据:[-2,0] [3,7] [2,6] [19,18]
得到的结果:8
暂时只想到上面的解法,有更好的解法欢迎指教。
分享到:
相关推荐
小米面试的笔试环节 对一些将要面试试的朋友部有一定帮助去了解一些知名公司的文化极注重点
刚从网上找下来的,,笔试涉及的范围还蛮广,,希望对大家有所帮助,,基本上什么都考了
中国好大米——宁夏大米
大米CMS是一个免费开源的,快速、简单的面向智能手机等移动终端的网站CMS系统. 大米CMS提供从服务器端网站到手机客户端以及客户端管理一整套的解决方案。你不需要会安卓开发,不需要对响应式网站布局有极强的理解。...
大米培训.pptx
第一部分是国内大米市场概况。民以食为天,食以米为先。中国是世界上最大的大米 生产国和消费国,65%以上的人口以大米为主食,每年大米需求量在2.4亿吨,年销售额 超过4000亿元。毫无疑问,这是一个庞大的市场。但...
最新大米投标书范本采购大米的标准合同范本精编范文样本.docx
从浙江市场看大米结构变化与市场波动,查贵庭,王凯,本文以浙江省大米市场数据为基础,研究2000年以来该省市场各品种大米的市场结构的变化,并通过季节指数的计算,重点研究了市场交�
2021天猫大米消费白皮书.pdf
大米供货商售后服务承诺书.docx
大米CMS是一套手机网站、PC网站集成一体的建站系统,大米CMS支持伪静态与全站生成静态HTML,支持数据采集 ,内核基于thinkphp MVC框架,提供简单、快捷的PC建站和智能手机建站解决方案,并提供开源的安卓手机...
大米CMS v6.0.7 bulid0219 更新日志 (1)上传文件附件默认去掉 htm html txt防止恶搞 (2)后台采集,增加保存采集规则 和 预览采集sql,方便检查规则是否正确。规则正确后可立即入库 (3)一键升级增加确认 ...
一、大米历史 二、大米分类 三、食用方法 四、营养价值 五、食物搭配 六、鉴别大米 七、储存方式 八、陈化粮 九、转基因大米 十、黑土岸边
小米8。探索版,屏幕指纹板解锁大米狗软件小米8。
Opencv大米计数vs编写
粮食工程专业的大米加工流程图。用2007CAD画的。
大米销售策划书.doc
大米的储存管理.pdf
资源名:大米识别_基于图像识别的整精米自动检测_包含实验报告_matlab 资源类型:matlab项目全套源码 源码说明: 全部项目源码都是经过测试校正后百分百成功运行的,如果您下载后不能运行可联系我进行指导或者更换。...
大米市场SWOT分析 调查报告.docx