356给定一个数组,里面存的是用户id,登陆时间,登出时间,怎么求最大同时在线人数,时间复杂度要求O(N)

Posted huoyingfans

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了356给定一个数组,里面存的是用户id,登陆时间,登出时间,怎么求最大同时在线人数,时间复杂度要求O(N)相关的知识,希望对你有一定的参考价值。

雷观:看到这个题,让我想起了 高中解 数学题,多思少算额。

突然,微微一笑,算法还有意思的。

要不,学之者不如好之者,好之者不如乐之者。

我刷题,我快乐。

刷题使我快乐。

《怎样解题》这本书,还比较有意思,抽空再学学。突然,这个题,加上这本书,让我感受到学习的乐趣了。

要不?

13、这个题应该考的是差分数组吧

12、这问题不就是力扣上一支箭射穿最多气球的踢吗,就是需要排序。。。

11、每个人在线时间点+1,最后再扫描一次就行

10、排序加扫描线 不过排序就nlogn了

9、完整题目应该是有三种操作:登入,登出,查询。
给你一系列的操作序列,每次“查询”操作输出对应结果,属于在线算法,也比较符合现实业务场景。

题目是面试官手打的,就给了一个数组

8、差分就行了

7、如果数组是无序的,那我想不出。有序的话直接扫描,多次查询的话可以用线段树、树状数组降到logn的查询复杂度

6、o n可以 计数排序思想排序就行

5、问下面试官o(n)怎么做

4、差分数组,但是需要先把所有时间戳排序nlogn了

原本也想先排序,但面试官说要O(N)的

或者用一个最小堆,记录离开时间,但是也需要所有的时间戳,也到不了n

3、定长数组,一天86400秒

没想到这,这样差分是可以

2、快手的题?在时间轴上记录当前登录人数与登出人数,线性扫一遍求最值就好了

老哥,能说一下用什么数据结构来做这个时间轴以及判断条件吗

个定长数组就好

1、很简单啊,定长时间数组,上线时间+1 下线时间-1,再前缀和扫描一下就能得出最大时间

懂了,感谢老哥们

定长数组可行;说排序的你们是认真的?

题目来源:https://maimai.cn/web/gossip_detail/29748311?src=app&webid=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6Mjk3NDgzMTEsInUiOjE3ODcxMzYzNiwiZWdpZCI6IjlmNjBkMWNlNjNhZjExZWNhY2U2ZTQ0MzRiMmZhODg4In0.dOdS61lNeI6FQ-I_nuwa-WHZOXoyZ6xorMtF5phgHb8&share_channel=2

以上是关于356给定一个数组,里面存的是用户id,登陆时间,登出时间,怎么求最大同时在线人数,时间复杂度要求O(N)的主要内容,如果未能解决你的问题,请参考以下文章

完全背包

linux桌面系统使用明文ssh密码登陆远程服务器

在主方法中定义一个大小为10*10的二维字符型数组,数组名为y,正反对角线上存的是‘*’,其余位置存的是‘#’;输出这个数组中的所有元素。

数据库储存密码

shell登陆问题

java怎么判断一个set集合里面有没有某一个值