求虹桥机场停靠的最大的飞机数量

2020-06-09 17:01:35 +08:00
 lovegnep

给定二维数组 [[3,7],[2,10],[3,4],[6,12],[13,19]],每个元素代表某一个飞机的降落与起飞时间,如题,求机场最大停靠的飞机数量

1803 次点击
所在节点    算法
10 条回复
xjtroddy
2020-06-09 17:05:44 +08:00
感觉很难啊,不会,插眼等大神
yaoliyc
2020-06-09 17:07:50 +08:00
没看懂
jangit
2020-06-09 17:13:23 +08:00
就弄个大小为 16 的数组,memset 为 0, [3,7] 的话就把数组 0-4 加个一,以此类推,最后找最大的那个数
大 guy 是这样的吧
whileFalse
2020-06-09 17:14:39 +08:00
不在乎性能的话不是随便写。

l = [[3,7],[2,10],[3,4],[6,12],[13,19]]
l = sorted([(i[0], 1) for i in l] + [(i[1], -1) for i in l])
current, max_value = 0, 0

for i in l:
current += i[1]
max_value = max(max_value, current)

print(max_value)
imn1
2020-06-09 17:17:26 +08:00
10+外服,上海一号服转发,可用端口 10000+,但超过 5000 并发会崩,所以是 5000,🐶
我想问,跟虹桥啥关系?

只考虑起落时间么?停机坪无限大?客流、架次、时段忽略?异常不考虑么?
eke
2020-06-09 17:21:33 +08:00
排序扫一遍
lovegnep
2020-06-09 17:22:48 +08:00
@imn1 只考虑起落时间
nevin47
2020-06-09 17:25:34 +08:00
用 hash 或者平衡树来保存每个时刻的情况,方便动态增减
然后扫一次填表
再扫一次树或者表求解
imn1
2020-06-09 17:25:46 +08:00
哦,看懂了,原来是时间点,不是时长……
求哪个时间点停留最多飞机的数量
wshcdr
2020-06-09 23:02:28 +08:00
package com.company;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Stream;

public class stream001 {

public static long max = 0;
public static void main(String[] args) {
List<Integer> list1 = new ArrayList<Integer>() {
{
add(1);
add(2);
add(3);
add(4);
add(5);
}

};


List<Span> listSpan = new ArrayList<Span>() {
{
add(new Span(3,7));
add(new Span(4, 8));
add(new Span(10, 12));
}

};




list1.forEach(item2->{
long l2 = listSpan.stream().filter(span -> item2 >= span.start && item2 <= span.end)
.count();
if(stream001.max < l2)
stream001.max = l2;

});

System.out.println(stream001.max);
}
}

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/680072

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX