很多朋友对于高效计算重叠区间数量:数据结构应用解析和不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!
伪代码:
区间定义如下:
班级间隔{
开始; //起点
打算; //终点
区间(int a,int b){
开始=a;
结束=b;
}
}首先定义区间的类,实现Comparable接口,包含起点和终点的值和类型,重写用于排序的compareTo函数。
类Point 实现Comparable{
int value;//数值
int type;//点的类型,0为起点,1为终点
点(int v,int t){
值=v;
类型=t;
}
//还需要实现compareTo函数用于排序
公共int 比较(点p){
if (this.value==p.value){
返回0;
}否则if (this.value p.value){
返回1;
}别的{
返回-1;
}
}
}其次,将区间转换为点,对点进行排序,然后统计重叠的次数。
int getOverlappingCount(间隔[] A){
整数最大值=0,计数=1;
if (A==null || A.length==0) 返回max;
Point[]点=new Point[A.length*2];
for (int i=0;i
R语言
不是按照伪代码给的风格写的,因为没有发现R语言可以这样写。Google上有一个R包intervals发现,这可以实现重叠功能,这就是我们这里要使用的交集。
计算两个区间集之间的重叠数:
a=矩阵(c(1:16),ncol=2, byrow=TRUE)
一个
[,1] [,2]
[1,] 1 2
[2,]3 4
[3、]5 6
[4、]7 8
[5、] 9 10
[6、]11 12
[7、] 13 14
[8、]15 16
to- 间隔(a,闭合=c(TRUE, FALSE),type="R")
#Collectionto
到
类间隔的对象
R: 上有8 个间隔
[1, 2)
[3, 4)
[5, 6)
[7, 8)
[9, 10)
[11, 12)
[13, 14)
[15, 16)
暗淡(至)
[1] 8 2
b- 矩阵(c(2.121, 8,8, 9,6, 9,11, 12,3, 3),ncol=2, byrow=TRUE)
乙
[,1] [,2]
[1,]2.121 8
[2,]8.000 9
[3,] 6.000 9
[4,] 11.000 12
[5,] 3.000 3
from- 间隔(b,闭合=c( FALSE, FALSE ),type="R")
# 收集自
从
类间隔的对象
R: 上有5 个间隔
(2.121, 8)
(8, 9)
(6, 9)
(11, 12)
(3, 3)
rownames(来自)- c(1:nrow(来自))
空(到)
[1] 假假假假假假假假假假
空(来自)
[1] 假假假假假真
b1-间隔重叠(从,到)
警告消息:
遇到一些空的“来自”间隔。设置为不适用.
b1
$`1`
[1] 2 3 4
$`2`
整数(0)
$`3`
[1] 4
$`4`
[1]6
$`5`
整数(0)
总和(长度(b1))
[1] 5可以通过设置close来改变间隔是开间隔还是闭间隔。也可以用append来附加不同的间隔。
对于输入是一个集合,计算集合内间隔重叠的数量
例子1
b 矩阵(c(2, 8,8, 9,6, 9,11, 12,3, 3),ncol=2, byrow=TRUE)
乙
[,1] [,2]
[1,]2 8
[2、]8 9
[3、]6 9
[4、]11 12
[5,]3 3
from- 间隔(b,闭合=c( T, T ),type="R")
从
类间隔的对象
R: 上有5 个间隔
[2, 8]
[8, 9]
[6, 9]
[11, 12]
[3, 3]
b1-间隔重叠(来自,来自)
b1
[[1]]
[1] 1 2 3 5
[[2]]
[1] 1 2 3
[[3]]
[1] 1 2 3
[[4]]
[1] 4
[[5]]
[1] 1 5
(总和(长度(b1))-nrow(b))/2
[1] 4
例子2
b 矩阵(c(1, 5,10, 15,5, 10,20, 30),ncol=2, byrow=TRUE)
乙
[,1] [,2]
[1,] 1 5
[2,]10 15
[3,]5 10
[4、] 20 30
from- 间隔(b,闭合=c( T, T ),type="R")
从
类间隔的对象
R: 上有4 个间隔
[1, 5]
[10, 15]
[5, 10]
[20, 30]
b1-间隔重叠(来自,来自)
b1
[[1]]
[1] 1 3
[[2]]
[1] 2 3
[[3]]
[1] 1 2 3
[[4]]
[1]4
(总和(长度(b1))-nrow(b))/2
【高效计算重叠区间数量:数据结构应用解析】相关文章:
2.米颠拜石
3.王羲之临池学书
8.郑板桥轶事十则
用户评论
我一直对数据结构比较感兴趣,这个题目听起来很新颖啊。
有15位网友表示赞同!
原来还有专门计算重叠区的算法!我应该好好学习一下。
有9位网友表示赞同!
这种知识点很有用,平时项目开发的时候说不定能派上用场。
有18位网友表示赞同!
看来得加班学习一下数据结构的知识了,这个题目让我很兴奋。
有18位网友表示赞同!
重叠区间个数是个好题目,感觉能锻炼逻辑思维能力。
有6位网友表示赞同!
这篇文章应该能帮我理解重叠区间的计算方法吧!
有7位网友表示赞同!
以前从来没有想过这个问题,看来数据结构的世界真是太大了!
有18位网友表示赞同!
我之前用暴力法解决过类似问题,不知道有没有更优解啊?
有6位网友表示赞同!
学习数据结构真的很重要,这个题目让我更加坚定了决心。
有20位网友表示赞同!
期待这篇文章能开阔我的视野,学习新的算法知识点!
有14位网友表示赞同!
重叠区间个数这种问题在很多场景下都很有用,比如日程安排之类的。
有7位网友表示赞同!
最近在练习数据结构,正好遇到这个题目,希望这篇文章能给我一些启发。
有20位网友表示赞同!
感觉这篇文章应该会讲到各种高效的算法和解题思路。
有13位网友表示赞同!
重叠区间的个数是基础概念吗?我需要先回顾一下基本知识点。
有11位网友表示赞同!
希望能够看到代码实现,这样对我理解起来更直观一些。
有15位网友表示赞同!
数据结构真是太奇妙了!让我对编程有了更深入的了解。
有5位网友表示赞同!
这篇文章能让我更加了解算法的优劣,学习如何选择合适的算法呢?
有16位网友表示赞同!
我需要好好查阅一下相关资料,掌握重叠区间的计算方法!
有6位网友表示赞同!
学习数据结构真是太有趣了! 希望更多的人能够了解这些知识!
有18位网友表示赞同!