欢迎来真孝善网,为您提供真孝善正能量书籍故事!

高效计算重叠区间数量:数据结构应用解析

时间:11-22 神话故事 提交错误

很多朋友对于高效计算重叠区间数量:数据结构应用解析和不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!

伪代码:

区间定义如下:

班级间隔{

开始; //起点

打算; //终点

区间(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

用户评论

∞◆暯小萱◆

我一直对数据结构比较感兴趣,这个题目听起来很新颖啊。

    有15位网友表示赞同!

那伤。眞美

原来还有专门计算重叠区的算法!我应该好好学习一下。

    有9位网友表示赞同!

拥抱

这种知识点很有用,平时项目开发的时候说不定能派上用场。

    有18位网友表示赞同!

拽年很骚

看来得加班学习一下数据结构的知识了,这个题目让我很兴奋。

    有18位网友表示赞同!

你身上有刺,别扎我

重叠区间个数是个好题目,感觉能锻炼逻辑思维能力。

    有6位网友表示赞同!

残花为谁悲丶

这篇文章应该能帮我理解重叠区间的计算方法吧!

    有7位网友表示赞同!

在哪跌倒こ就在哪躺下

以前从来没有想过这个问题,看来数据结构的世界真是太大了!

    有18位网友表示赞同!

浅巷°

我之前用暴力法解决过类似问题,不知道有没有更优解啊?

    有6位网友表示赞同!

余笙南吟

学习数据结构真的很重要,这个题目让我更加坚定了决心。

    有20位网友表示赞同!

该用户已上天

期待这篇文章能开阔我的视野,学习新的算法知识点!

    有14位网友表示赞同!

巷陌繁花丶

重叠区间个数这种问题在很多场景下都很有用,比如日程安排之类的。

    有7位网友表示赞同!

迷路的男人

最近在练习数据结构,正好遇到这个题目,希望这篇文章能给我一些启发。

    有20位网友表示赞同!

命该如此

感觉这篇文章应该会讲到各种高效的算法和解题思路。

    有13位网友表示赞同!

┲﹊怅惘。

重叠区间的个数是基础概念吗?我需要先回顾一下基本知识点。

    有11位网友表示赞同!

羁绊你

希望能够看到代码实现,这样对我理解起来更直观一些。

    有15位网友表示赞同!

滴在键盘上的泪

数据结构真是太奇妙了!让我对编程有了更深入的了解。

    有5位网友表示赞同!

命硬

这篇文章能让我更加了解算法的优劣,学习如何选择合适的算法呢?

    有16位网友表示赞同!

小清晰的声音

我需要好好查阅一下相关资料,掌握重叠区间的计算方法!

    有6位网友表示赞同!

无望的后半生

学习数据结构真是太有趣了! 希望更多的人能够了解这些知识!

    有18位网友表示赞同!

【高效计算重叠区间数量:数据结构应用解析】相关文章:

1.蛤蟆讨媳妇【哈尼族民间故事】

2.米颠拜石

3.王羲之临池学书

4.清代敢于创新的“浓墨宰相”——刘墉

5.“巧取豪夺”的由来--米芾逸事

6.荒唐洁癖 惜砚如身(米芾逸事)

7.拜石为兄--米芾逸事

8.郑板桥轶事十则

9.王献之被公主抢亲后的悲惨人生

10.史上真实张三丰:在棺材中竟神奇复活