题目:一条直线有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
暂时只想到上面的解法,有更好的解法欢迎指教。
分享到:
相关推荐
"小米笔试题详解" 本资源摘要信息涵盖了小米笔试题的详细解释,涵盖了堆栈、数据结构、逻辑思维、C 语言、Java 基础题等多个方面。以下是详细的知识点解释: 黑盒测试 黑盒测试是一种软件测试方法,测试者不了解...
### 腾讯历年研发类笔试题汇总分析 #### 宏定义实现数值比较 1. **题目背景**:要求定义一个宏,用于比较两个数`a`和`b`的大小,但不能使用传统的比较运算符(如`>`、`)以及`if`语句。 **知识点解析**: - **宏...
### 中国好大米——宁夏大米的关键知识点 #### 宁夏大米的特点与历史地位 - **特点**:宁夏大米以其“粒圆、色洁、油润、味香”而闻名,自古以来就被视为珍贵之物,曾作为贡米受到皇室青睐。 - **现代地位**:即便...
【大米行业概况】 中国是全球最大的稻谷生产国,2012年度全国大米总产量高达1.38亿吨。根据2011年中国统计年鉴,2011年底,全国餐饮、企业、高校的大米消费量约为4140万吨,占据了30%的市场份额。然而,2013年中...
《2021天猫大米消费白皮书》揭示了中国线上大米市场的快速发展和消费趋势。在2020年,天猫平台上的大米销售额增长超过了50%,品牌数量增长超过150%,达到2000多个,这显示出大米作为基本消费品在电商领域的强劲增长...
【淘宝2011实习招聘笔试】涉及到的IT知识点主要包括计算机网络、数据结构与算法、编程基础和逻辑推理。下面将对这些知识点进行详细的解析: 1. **计算机网络**: - **局域网速度计算**:题目中提到的千兆网卡在...
大米CMS是一个免费开源的,快速、简单的面向智能手机等移动终端的网站CMS系统. 大米CMS提供从服务器端网站到手机客户端以及客户端管理一整套的解决方案。你不需要会安卓开发,不需要对响应式网站布局有极强的理解。...
【大米储存管理】是关于如何妥善保管大米,保持其品质不受环境因素影响的重要技术知识。在不同的季节,大米的储存策略需要相应调整。夏季由于高温和高湿度,大米容易受潮发霉,因此应减少存储量,选择通风良好的独立...
在本文中,我们将深入探讨如何使用Python语言进行大米的识别和计数,这是一个涉及数字图像处理的基础技术。Python因其丰富的库支持和简洁的语法而成为处理这类问题的首选语言。我们将涵盖以下几个关键知识点: 1. *...
【大米市场SWOT分析】 大米市场在中国具有深厚的消费基础,主要分布在七大区域,即华南、华北、华东、华中、东北、西南和西北。其中,华南、华北和华东地区的消费者需求及购买力较强,对中高档大米的接受度较高。...
【大米网络营销分析】 在中国,大米市场占据着举足轻重的地位,作为世界上最大的大米生产和消费国,65%以上的居民以大米为主食,年需求量高达2.4亿吨,年销售额超过4000亿元人民币。然而,市场现状却呈现出“小、散...
【标题】:“利用VS编写的基于OpenCV大米计数程序” 在计算机视觉领域,自动大米计数是一项具有挑战性的任务,通常应用于农业自动化、粮食检测等领域。本项目是利用Visual Studio 2010(VS2010)集成开发环境,结合...
【最新大米投标书范本采购大米的标准合同范本精编范文样本.docx】这份文档是关于大米采购的详细合同范本,旨在规范买卖双方在大米交易过程中的行为,确保交易的公平、合法和高效。以下是其中涉及的重要知识点: 1. ...
从浙江市场看大米结构变化与市场波动,查贵庭,王凯,本文以浙江省大米市场数据为基础,研究2000年以来该省市场各品种大米的市场结构的变化,并通过季节指数的计算,重点研究了市场交�
然而,近年来,越南和印度开始重视农业发展,大幅增加了稻米种植面积,导致大米出口量逐渐超越泰国,对泰国大米的国际市场份额造成挤压。面对激烈的国际竞争,泰国大米出口面临着极大的挑战。 本研究通过国际市场...
《2021天猫大米消费白皮书》揭示了近年来线上大米市场的快速发展和消费者行为变化。这份报告由CBNData与天猫共同发布,详细分析了2021年天猫平台上大米消费的趋势和特点。 首先,线上大米销售在天猫平台表现出强劲...
【标题】"大米狗V20190731.zip"是一款专为小米8探索版设计的屏幕指纹解锁软件。这款软件的主要功能是帮助用户解锁他们的设备,特别是那些使用屏幕指纹识别技术的小米8手机。 【描述】提到的小米8探索版是一款具有...
【大米品牌网络营销方案】 在当前竞争激烈的市场环境下,大米品牌要想脱颖而出,必须采取创新的营销策略。本方案主要探讨了如何通过借势营销和事件营销,结合网络营销手段,提升品牌影响力,扩大市场份额。 首先,...
《2020中国大米行业蓝皮书》是由博晓通发布的关于中国大米行业的权威研究报告。这份报告深入探讨了中国大米行业的现状、发展趋势、市场挑战以及政策环境等多个方面,为行业参与者提供了宝贵的信息和洞见。 一、行业...