Python 同时在现场的用户对数。在O中求解(nlogn)

Python 同时在现场的用户对数。在O中求解(nlogn),python,algorithm,sorting,merge,time-complexity,Python,Algorithm,Sorting,Merge,Time Complexity,我正在尝试以下问题: 新朋友。n个用户中的每一个都会在社交媒体网站上花费一些时间。对于每个i=1,…,n,用户i在时间ai进入站点,在时间bi离开站点≥ 人工智能。您对以下问题感兴趣: 站点上同时有多少对不同的用户?(这里,对(i,j)与对(j,i)相同)。 示例:假设有5个用户具有以下进入和离开时间: 用户输入时间离开时间 使用者 输入时间 离开时间 1. 1. 4. 2. 2. 5. 3. 7. 9 4. 9 10 5. 6. 10 我想他们心里一定有这样的想法 lst = [(1, 4),

我正在尝试以下问题:

新朋友。n个用户中的每一个都会在社交媒体网站上花费一些时间。对于每个i=1,…,n,用户i在时间ai进入站点,在时间bi离开站点≥ 人工智能。您对以下问题感兴趣:
站点上同时有多少对不同的用户?(这里,对(i,j)与对(j,i)相同)。 示例:假设有5个用户具有以下进入和离开时间:
用户输入时间离开时间

使用者 输入时间 离开时间 1. 1. 4. 2. 2. 5. 3. 7. 9 4. 9 10 5. 6. 10
我想他们心里一定有这样的想法

lst = [(1, 4), (2, 5), (7, 9), (9, 10), (6, 10)]
events = []
for enter, leave in lst:
    events.append((enter, "enter"))
    events.append((leave, "leave"))
# At the same time, enter is before leave, which is what we want.
events.sort()
pairs = 0
onsite = 0
for _time, kind in events:
    if kind == "enter":
        pairs += onsite
        onsite += 1
    elif kind == "leave":
        onsite -= 1
    else:
        assert False
print(pairs)

你好,纳比尔!寻找有关区间交叉口问题的详细信息,它将帮助您理解原理并自行提出解决方案。非常感谢您为我指明道路。自从你发表评论以来,我一直在寻找。但我仍然不明白如何在O(nlogn)时间内做到这一点。我真的需要解决这个问题,因为截止日期快到了。