来源于网上的一道面试题目,看到后感觉挺新颖的,正好这一篇博客也有了实现,感觉思路很妙,作者给出来的是Java版本的,这里我简单给出来一下python版本的,先贴一下问题的描述:

问题描述:

现有一直线,从原点到无穷大。

这条直线上有N个线段。线段可能相交。

问,N个线段总共覆盖了多长?(重复覆盖的地区只计算一次)

思路:

依据线段的区间将线段的区间像素单位化,即将计算区域的长度转化为所有在覆盖区域中的单位长度的累加即可

下面是具体的实现:

#!usr/bin/env python
#encoding:utf-8'''
__Author__:沂水寒城
功能:求解线段覆盖总长度
'''def test_func(num_list):'''输入:线段起点、终点输出:总的覆盖长度'''start=1000end=0for one_list in num_list:if one_list[0]<start:start=one_list[0]if one_list[1]>end:end=one_list[1]#print start, endflag=['false']*endfor i in range(len(num_list)):for j in range(num_list[i][0], num_list[i][1]):flag[j]=True#print flagreturn flag.count(True)if __name__ == '__main__':num_list1=[[1,3],[2,7],[9,11],[13,20],[15,30]]num_list2=[[1,3],[2,6],[11,12],[10,13]]print 'Total Length is:', test_func(num_list1)print 'Total Length is:', test_func(num_list2)

结果如下:


Total Length is: 25
Total Length is: 8
[Finished in 0.7s]


python求解重叠区域线段覆盖总长度相关推荐

  1. 一条直线上N个线段所覆盖的总长度

    转自http://blog.csdn.net/bxyill/article/details/8962832 问题描述: 现有一直线,从原点到无穷大. 这条直线上有N个线段.线段可能相交. 问,N个线段 ...

  2. arcgis 分区 属性值_如何使用ArcGIS计算分区河流(管线)总长度

    1. 概述 已知有一个河流的线图层(HydroL)和多个不同用地类型的图层(WoodyA表示绿化用地,ResidentialA表示公共用地,BoundaryA表示其他类型用地),目标是获得每个分区内的 ...

  3. 如何使用ArcGIS计算分区河流(管线)总长度

    1. 概述 已知有一个河流的线图层(HydroL)和多个不同用地类型的图层(WoodyA表示绿化用地,ResidentialA表示公共用地,BoundaryA表示其他类型用地),目标是获得每个分区内的 ...

  4. 线段覆盖长度(c++)

    问题描述 给出n个线段以及它们的左端点和右端点.我们要求得到这些线段覆盖部分的长度.如线段[1,2]和[2,3]覆盖了数轴上1到3这个部分,所以它们覆盖的长度就是2. 输入格式 第一行一个数n表示有n ...

  5. [Mesh Order]lumerical MODE软件EME Solver中结构重叠区域(clapping)求解过程中的优先级问题

    当仿真区域中出现重叠区域时就存在求解优先级的问题,使用以下两个方面可以解决 不使用index monitor 使用index monitor 一.不使用index monitor 在编辑structu ...

  6. python图形缝隙填充_Python,如何缝合图像哪些重叠区域?

    我试着把有重叠区域的图像缝合在一起. 对图像进行排序,每个图像都有与前一个图像重叠的区域.例如: 问题是否来自右侧黑色的第5张图像?不知道为什么要加黑,以及如何避免.在 有人知道我如何修复代码,使其在 ...

  7. cad线段总和lisp_cad lisp-求线段总长度

    来源: 明经CAD社区 作(译)者: 龙龙仔 上传者: mccad 上传时间:2002年9月23日 ;;;----------------------------------------------- ...

  8. Python 求解自行车前后轮轨迹问题

    ♚ 作者:crazyhat,Python及科学计算爱好者. 数月前偶遇一道自行车相关的趣味数学题:根据下图[1]所示自行车前.后轮轨迹,判断自行车的前进方向,是从左往右还是从右往左? 自行车趣题 不曾 ...

  9. ACM公选课第五节贪心4.14-5.4补+第六节上贪心线段覆盖

    每一步都不从全局,找当下就好 特征(还有dp基础) 求解(比如最小生成树那个) 伪代码 就是每个房间的比例都不一样 要靠经验 事件序列问题(dp贪心经典题) 用贪心解,最先结束的,后面选最先结束且不重 ...

  10. 用Python求解线性规划问题

    线性规划简介及数学模型表示线性规划简介一个典型的线性规划问题线性规划模型的三要素线性规划模型的数学表示图解法和单纯形法图解法单纯形法使用python求解简单线性规划模型编程思路求解案例例1:使用sci ...

最新文章

  1. Markdown here 离线下载安装
  2. python turtle循环图案-有趣的Python turtle绘图
  3. fiddler几种功能强大的用法(一)转自:http://www.cnblogs.com/chenshaoping/p/5785010.html
  4. Fedora 24的用户,千万不要在桌面里运行 `dnf update`
  5. Redis单机部署、添加开机自启、配置参数
  6. 高效的数据压缩编码方式 Protobuf
  7. ZooKeeper 3.0.0发行说明
  8. 微众银行在联邦推荐算法上的探索及应用(文末附PPT下载链接)
  9. php -l 检查文件是否语法错误
  10. linq where的应用
  11. 如何让网站自动识别手机端与PC端
  12. sql注入语句示例大全_通过示例了解SQL EXCEPT语句
  13. matlab设计计算器,MATLAB-计算器的设计.doc
  14. 计算机派位志愿填报技巧,小升初电脑派位操作流程详解
  15. 一个具有一些功能的网络画图板
  16. INTERVAL的使用
  17. EC-Net: a Edge-aware Point set Consolidation Network
  18. 【百宝云】按键精灵软件注册码系统
  19. Python——二进制16位加法器(采用手算二进制加法的过程实现)(tkinter实现)【2021-07-08】
  20. etiger.vip 293.野兽出没

热门文章

  1. scala学习手记15 - 独立对象和伴生对象
  2. java连接数据库驱动代码综合共享
  3. perl里q,qq,qw等的用法
  4. exception内置对象
  5. JS--微信浏览器复制到剪贴板实现
  6. 事务处理笔记《一》ADO.NET级别的事务
  7. 架构-LAMP特级学习(网站加速解决方案)
  8. 页面指令JSP常见的指令有哪些?(面试必备)
  9. 提交json数据给Java_java 实现通过 post 方式提交json参数操作
  10. 拓端tecdat|R语言用普通最小二乘OLS,广义相加模型GAM ,样条函数进行逻辑回归LOGISTIC分类