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,再前缀和扫描一下就能得出最大时间
懂了,感谢老哥们
定长数组可行;说排序的你们是认真的?
以上是关于356给定一个数组,里面存的是用户id,登陆时间,登出时间,怎么求最大同时在线人数,时间复杂度要求O(N)的主要内容,如果未能解决你的问题,请参考以下文章
在主方法中定义一个大小为10*10的二维字符型数组,数组名为y,正反对角线上存的是‘*’,其余位置存的是‘#’;输出这个数组中的所有元素。