由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 【BB关于排序的题目该怎么解?】
相关主题
请教fackbook一道题问一道题(2)
讨论一道面试题问道排序题
经典activity selection的问题问个微软面试题
AMAZON ONSITE:RECRUITER问期望薪水、BONUS 和RSU...算法题:合并两个排序二叉树
给定一堆会议的开始以及结束时间,问怎么安排能安排尽可能多的会议。问一道题目
CLRS 16.1-5 怎么做问一个关于区间的问题
老纳跟风顶风作案,贡献一道g家上周的题目风暴发 hr 电面
A 公司网页点击问题请教一个题目
相关话题的讨论汇总
话题: 排序话题: activity话题: e1话题: bb话题: conflict
进入JobHunting版参与讨论
1 (共1页)
h*****g
发帖数: 944
1
说现在有一个array的activity, 每个activity都有自己的start time和 end time,
找出所有 至少与一个acticity conflict的activity
有什么比较efficient的办法吗?
b*******8
发帖数: 37364
2
先按开始时间排序nlogn,再扫一遍碰见重叠就完成了。O(nlogn),如果已经排序好了
那就是O(n)。
c**y
发帖数: 172
3
你能解释一下如何
“再扫一遍碰见重叠就完成了”?

【在 b*******8 的大作中提到】
: 先按开始时间排序nlogn,再扫一遍碰见重叠就完成了。O(nlogn),如果已经排序好了
: 那就是O(n)。

l*********r
发帖数: 674
4
按开始时间s1, s2, ... 排序,同时标记结束时间e1, e2, ...
扫第二遍的时候,如果没有conflict,应该是s1, e1, s2, e2, ...
如果有si, s_(i+1)连在一起那就是conflict

【在 c**y 的大作中提到】
: 你能解释一下如何
: “再扫一遍碰见重叠就完成了”?

h**********d
发帖数: 4313
5
这样只能判断是否有 conflict吧,如果要找出来,好像这样只能找到连续pair的重叠
,如果不连续但有重叠怎么办呢

【在 l*********r 的大作中提到】
: 按开始时间s1, s2, ... 排序,同时标记结束时间e1, e2, ...
: 扫第二遍的时候,如果没有conflict,应该是s1, e1, s2, e2, ...
: 如果有si, s_(i+1)连在一起那就是conflict

b*******8
发帖数: 37364
6
设按开始时间排序好以后是S1~Sn,对应的结束时间是E1~En(这个不一定Sorted)。那么只要依次比较E1~S2,E2~S3, ..., En-1~Sn,如果Si
【在 h**********d 的大作中提到】
: 这样只能判断是否有 conflict吧,如果要找出来,好像这样只能找到连续pair的重叠
: ,如果不连续但有重叠怎么办呢

h*****g
发帖数: 944
7
这样的complexity不就是N*N了吗??

那么只要依次比较E1~S2,E2~S3, ..., En-1~Sn,如果Si 相冲突,这俩个同时加入输出。假设你要的输出是Activities的集合,而不是两两配对
的集合。

【在 b*******8 的大作中提到】
: 设按开始时间排序好以后是S1~Sn,对应的结束时间是E1~En(这个不一定Sorted)。那么只要依次比较E1~S2,E2~S3, ..., En-1~Sn,如果Si
h**********d
发帖数: 4313
8
如果第一个act包含了其他所有acts,其他acts之间没有冲突,这样只能输入头两个,
按题目应该输出所有吧

那么只要依次比较E1~S2,E2~S3, ..., En-1~Sn,如果Si 相冲突,这俩个同时加入输出。假设你要的输出是Activities的集合,而不是两两配对
的集合。

【在 b*******8 的大作中提到】
: 设按开始时间排序好以后是S1~Sn,对应的结束时间是E1~En(这个不一定Sorted)。那么只要依次比较E1~S2,E2~S3, ..., En-1~Sn,如果Si
h*****g
发帖数: 944
9
对啊,需要输出所有的,大家有答案吗?

【在 h**********d 的大作中提到】
: 如果第一个act包含了其他所有acts,其他acts之间没有冲突,这样只能输入头两个,
: 按题目应该输出所有吧
:
: 那么只要依次比较E1~S2,E2~S3, ..., En-1~Sn,如果Si: 相冲突,这俩个同时加入输出。假设你要的输出是Activities的集合,而不是两两配对
: 的集合。

p*****e
发帖数: 53
10
开始和结束的时间都同意参加排队,然后找overlap就可以了吧

【在 h*****g 的大作中提到】
: 对啊,需要输出所有的,大家有答案吗?
e********s
发帖数: 248
11
1. 开始和结束的时间一起排序
2. 用一个stack来chek overlap
3. 可能要用一个array或者hash table来uniquefy results.

【在 p*****e 的大作中提到】
: 开始和结束的时间都同意参加排队,然后找overlap就可以了吧
1 (共1页)
进入JobHunting版参与讨论
相关主题
请教一个题目给定一堆会议的开始以及结束时间,问怎么安排能安排尽可能多的会议。
面试中举例常见的高效排序算法, 为什么都举quicksort和mergesort, 很少说heapsort呢CLRS 16.1-5 怎么做
问个数组相关的题老纳跟风顶风作案,贡献一道g家上周的题目
[合集] H1B被批准如不激活会不会影响F1status和OPT?A 公司网页点击问题
请教fackbook一道题问一道题(2)
讨论一道面试题问道排序题
经典activity selection的问题问个微软面试题
AMAZON ONSITE:RECRUITER问期望薪水、BONUS 和RSU...算法题:合并两个排序二叉树
相关话题的讨论汇总
话题: 排序话题: activity话题: e1话题: bb话题: conflict