java实现合并多个线段,计算多个线段的实际覆盖长度_java 多条线段合并为一条线-程序员宅基地

技术标签: 算法  

算法: 计算多个线段实际覆盖的长度。
例如:
线段组1:{ {1, 2}, {2, 3}, {3, 5}, {4, 10.5}, {11, 13}}的长度为
[1,10.5],[11,13]的长度为11.5;

线段组2:{ {1, 5}, {4, 5}, {0.7, 6}, {0.9, 1.5}}的长度为[0.7,6]的长度为5.3;

思路分析:
1.由题意知道: 要求实际长度,凡是两个线段有重叠的地方我们都需要合并
2.这里采用双重遍历分别拿数组的第1个值跟第二个比较,拿线段组1举例,
第一次是用{1,2},{2,3}比较,发现重叠线段,合并成{1,3}。此时线段组1{ {1, 3}, {3, 5}, {4, 10.5}, {11, 13}}
3.重置循环,第二次拿{1, 3}, {3, 5}比较,合并成{1,5}。以此类推,最终合并后的线段组1{ {1,10.5},{11,13}}
4.遍历线段组1并累加求和输出结果: 11.5

那么代码片如下:

   public static double coverageLength(double[][] nums) {
   
    
        List<double[]> list = new LinkedList<>();
        for (int i = 0; i < nums.length; i++) {
   
    
            list.add(nums[i]);
        }

        for (int i = 0; i < list.size(); i++) {
   
    
            for (int j = i + 1; j < list.size(); j++
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_41788067/article/details/104059001

智能推荐

LINUXE下执行php 定时任务-程序员宅基地

文章浏览阅读39次。linuxtest.php<?php $fn='/home/root.adminssh/boz/logs';$data=rand(1,9999);$fp=fopen($fn,'wb');fwrite($fp,$data);fclose();?>linux下执行命令/usr/bin/php -f ./test.php转载...

shell 变量匹配-程序员宅基地

文章浏览阅读546次。${var%pattern}${var%%pattern}${var#pattern}${var##pattern}${var%pattern},${var%%pattern} 从右边开始匹配${var#pattern},${var##pattern} 从左边开始匹配${var%pattern} ,${var#pattern} 表示最短匹配,匹配到就停止,非贪婪..._shell匹配tag的变量怎么写

运行shap模型时,出现Visualization omitted, Javascript library not loaded! Have you run `initjs()`-程序员宅基地

文章浏览阅读715次,点赞14次,收藏9次。【代码】运行shap模型时,出现Visualization omitted, Javascript library not loaded!_visualization omitted, javascript library not loaded! have you run `initjs()

Base64编码转为文件_将base64编码变成.7z文件-程序员宅基地

文章浏览阅读505次,点赞3次,收藏3次。在JavaScript中,将Base64编码的字符串转换为文件通常涉及几个步骤。这通常涉及到创建一个Blob对象,然后使用这个Blob对象来创建一个文件。File对象通常用于表示用户选择的文件,但也可以在这里用来表示从Base64字符串创建的文件。// 你的Base64字符串。// 现在你可以使用这个文件对象,比如通过表单上传,或者通过URL.createObjectURL来预览图片等。方法,你可以创建一个指向Blob或File对象的URL,这个URL可以直接用于在。// 示例:创建图片的URL。_将base64编码变成.7z文件

基于 OpenCV 的图像处理与分析应用的设计与实现_具有图像分析设计开发-程序员宅基地

文章浏览阅读1.8k次。图像处理与分析是计算机视觉中的重要应用领域,通过对图像进行处理和分析,可以提取有用的信息和特征,用于解决实际问题。 OpenCV 是一个强大的开源计算机视觉库,提供了丰富的功能和算法,适用于各种图像处理和分析任务。本文将以设计和实现一个基于 OpenCV 的图像处理与分析应用为中心,为你介绍构建这样一个应用的基本原理、方法和实例。_具有图像分析设计开发

ASR6501模组Cortex-M0+ SX1262 PSoC+LoRaWAN节点模块 CubeCell系列AT指令中文手册_sx1262中文手册-程序员宅基地

文章浏览阅读2.2k次。CubeCell系列AT指令中文手册0.版权声明1.摘要2.串口设置3. AT指令语法3.1语法概述3.2 AT指令集基础控制指令(括号中为译者注释,并不会显示)用户AT指令用户AT指令执行逻辑“ 普通LoRa模式”专有指令设置LoRa监听/发送参数接收模式接收数据输出模式选择LoRaWAN模式专有指令设置 DevEui设置 AppEui设置AppKey设置NwkSKey设置 AppSKey设置 DevAddr设置 OTAA / ABP mode配置ADR配置LoRaWAN通道掩码触发OTAA访问设置通讯周_sx1262中文手册

随便推点

C语言带你从实现一个通讯录开始,由“静态版”——>“动态内存版”——>“文件操作版“的万字超级详细分享,从此熟练掌握和运用基本的数组,指针,结构体, 动态内存管理和文件操作!_创建通讯录;在通讯录上实现:查找、增加、删除、修改和打印输出通讯录中所有元素等-程序员宅基地

文章浏览阅读8.1k次,点赞31次,收藏13次。如果你对独立完成一个C语言小程序还毫无头绪,那这篇文章将我将手把手和你一起完成一个通讯录项目,其中包括数组,自定义函数,结构体,指针,动态内存管理和C语言文件操作的结合应用,保姆级教学,超万字的全站最详细教程,简直不要太好,而且每部分知识点可单独任君挑选食用,走过路过,不要错过了呦!_创建通讯录;在通讯录上实现:查找、增加、删除、修改和打印输出通讯录中所有元素等

电磁场第二章公式总结_线电荷密度与电场强度公式-程序员宅基地

文章浏览阅读2.9k次,点赞3次,收藏20次。1.电荷计算公式根据电荷密度的定义,如果已知某空间区域V中的电荷体密度,则区域V中的总电量q为q=∫Vρ(r⃗)dVq=\int_{V}\rho(\vec{r})dVq=∫V​ρ(r)dV如果已知某空间曲面S上的电荷面密度,则该曲面上的总电量q 为q=∫SρS(r⃗)dSq=\int_{S}\rho_S(\vec{r})dSq=∫S​ρS​(r)dS如果已知某空间曲线上的电荷线密度,则该..._线电荷密度与电场强度公式

鼠标右击没有新建WORD、EXCEL、PPT选项卡解决方案_win11右键新建没有ppt-程序员宅基地

文章浏览阅读1.5k次。鼠标右击没有新建WORD、EXCEL、PPT选项卡解决方案_win11右键新建没有ppt

微信小程序 -- ios 底部小黑条样式问题_uniapp 微信小程序屏幕小黑条-程序员宅基地

文章浏览阅读2.1k次,点赞27次,收藏24次。如图,ios有的机型底部伪home键会显示在按钮之上,导致点击按钮的时候误触。_uniapp 微信小程序屏幕小黑条

c++编写暴力破解密码_怎么用c++破译administrator密码-程序员宅基地

文章浏览阅读760次。打开控制台:windows+R,进入目录路径。三、将两个程序复制到一个文件夹中。_怎么用c++破译administrator密码

推荐文章

热门文章

相关标签