Data structures 在同一时期,该市人口最多的是多少?

Data structures 在同一时期,该市人口最多的是多少?,data-structures,Data Structures,今天课堂上讨论的一个问题是: n巴黎是给定的(ai,bi),每对代表一个人,ai,bi代表2019年他从巴黎的入境日期和出境日期。 问题是,在同一时期,城市人口最多的是什么 我尝试将日期强制转换为[1365](整数),并将它们插入一个AVL的入口,将退出日期插入另一个AVL,并保存两个AVL的指针,遍历一棵树并在需要时更新最大值。 我认为这是一个幼稚的想法,因为它需要O(n^2) 我们了解的数据结构是: 数组、链表、队列、堆栈、堆、BST、AVL、堆、哈希表、SkipList和图形。您可以将数组

今天课堂上讨论的一个问题是: n巴黎是给定的(ai,bi),每对代表一个人,ai,bi代表2019年他从巴黎的入境日期和出境日期。 问题是,在同一时期,城市人口最多的是什么

我尝试将日期强制转换为[1365](整数),并将它们插入一个AVL的入口,将退出日期插入另一个AVL,并保存两个AVL的指针,遍历一棵树并在需要时更新最大值。 我认为这是一个幼稚的想法,因为它需要O(n^2)

我们了解的数据结构是:
数组、链表、队列、堆栈、堆、BST、AVL、堆、哈希表、SkipList和图形。

您可以将数组用于此逻辑

由于一年中的天数是固定的,因此创建一个数组来统计该特定日期城市中的人数

count[365] = {0}; //Reset the counter, all entries should be zero.
maxCount = 0;
maxDay = -1;

for(day from 0 to (365-1))
{
    for(i from 0 to (n-1) person)
    {
        if(day >= ai && day <= bi) //Update this check based on whether ai and bi are inclusive or not.
        {
            count[day] = count[day]+1;
            if(count[day] > maxCount) //Keep track of maxCount, if required update it.
            {
                maxCount = count[day];
                maxDay   = day;
            }
        }
    }
}

Output maxDay, maxCount;
count[365]={0}//重置计数器,所有条目应为零。
最大计数=0;
maxDay=-1;
用于(从0到(365-1)的日期)
{
适用于(从0人到(n-1人)
{
if(day>=ai&&day maxCount)//跟踪maxCount,如果需要,更新它。
{
maxCount=计数[天];
maxDay=天;
}
}
}
}
输出maxDay,maxCount;

上述逻辑的时间复杂度为
O(365*n)=>O(n)

您可以将数组用于此逻辑

由于一年中的天数是固定的,因此创建一个数组来统计该特定日期城市中的人数

count[365] = {0}; //Reset the counter, all entries should be zero.
maxCount = 0;
maxDay = -1;

for(day from 0 to (365-1))
{
    for(i from 0 to (n-1) person)
    {
        if(day >= ai && day <= bi) //Update this check based on whether ai and bi are inclusive or not.
        {
            count[day] = count[day]+1;
            if(count[day] > maxCount) //Keep track of maxCount, if required update it.
            {
                maxCount = count[day];
                maxDay   = day;
            }
        }
    }
}

Output maxDay, maxCount;
count[365]={0}//重置计数器,所有条目应为零。
最大计数=0;
maxDay=-1;
用于(从0到(365-1)的日期)
{
适用于(从0人到(n-1人)
{
if(day>=ai&&day maxCount)//跟踪maxCount,如果需要,更新它。
{
maxCount=计数[天];
maxDay=天;
}
}
}
}
输出maxDay,maxCount;
上述逻辑的时间复杂度为
O(365*n)=>O(n)