牛客周赛 Round 62_小红的中位数查询(easy)
当窗口大小等于区间长度时,由于窗口中的数有序,且区间长度为奇数,所以最中间的数为该段区间的中位数,同时该数也为以当前查插入数的位置为右端点区间的中位数。由此可以枚举出所有数组中所有长度等于k的区间的中位数,然后在根据右端点查询,代码时间复杂度大约为O(n*log n),在可接受范围内。先不断向窗口中按顺序插入数,利用二分函数lower_bound()找到该数的位置插入,可以保证该窗口的所有元素都是有序的。由于每一组测试样例的区间长度都相同,本题可以用一个长度为k的滑动窗口来维护查询每个区间的中位数。
原创
2024-09-30 19:06:45 ·
373 阅读 ·
0 评论