楼主: lancurs
跳转到指定楼层
上一主题 下一主题
收起左侧

亚麻 新鲜虚拟表演

🔗
 楼主| lancurs 2020-8-26 01:36:41 | 只看该作者
全局:
mchzh 发表于 2020-8-25 10:20
相当于一个slide window,一边弹出20分钟前的内容,一边加新内容重新算median?

不需要弹出, 我大概是这么写的:
  1. class Solution {
  2.   
  3.     enum ActionType {
  4.         START_SESSION, END_SESSION;
  5.     }
  6.    
  7.     private Map<String, LocalDateTime> activeSessions = new HashMap<>();
  8.    
  9.     private int[] durations = new int[20];
  10.    
  11.     private int count = 0;
  12.    
  13.     public void recordLog(String userName, ActionType actionType, LocalDateTime timeStamp) {
  14.         if (actionType == ActionType.START_SESSION) {
  15.             activeSessions.put(userName, timeStamp);
  16.         } else {
  17.             LocalDateTime startTime = activeSessions.get(userName);
  18.             int duration = (int) Duration.between(timeStamp, startTime).toMinutes();
  19.             durations[duration]++;
  20.             count++;
  21.         }
  22.     }
  23.    
  24.     public double findMedian() {
  25.         if (count % 2 == 1) {
  26.             return (double) findKth(count / 2);
  27.         } else {
  28.             return (double) (findKth(count / 2) + findKth((count + 1) / 2)) / 2;
  29.         }
  30.     }
  31.    
  32.     private int findKth(int k) {
  33.         int prefixSum = 0;
  34.         for (int i = 0; i < 20; i++) {
  35.             prefixSum += durations[i];
  36.             if (prefixSum >= k) {
  37.                 return i;
  38.             }
  39.         }
  40.         return -1;
  41.     }
  42. }
复制代码

评分

参与人数 2大米 +4 收起 理由
ND0406 + 1 给你点个赞!
mchzh + 3 给你点个赞!

查看全部评分

回复

使用道具 举报

🔗
mchzh 2020-8-26 02:51:08 | 只看该作者
全局:
lancurs 发表于 2020-8-26 01:36
不需要弹出, 我大概是这么写的:
[mw_shl_code=java,true]class Solution {
  

学习一下
回复

使用道具 举报

🔗
mchzh 2020-8-26 03:47:53 | 只看该作者
全局:
lancurs 发表于 2020-8-26 01:36
不需要弹出, 我大概是这么写的:
[mw_shl_code=java,true]class Solution {
  

Log stream很大的时候有没有map放不下的可能?多谢
回复

使用道具 举报

🔗
 楼主| lancurs 2020-8-26 04:38:16 | 只看该作者
全局:
mchzh 发表于 2020-8-26 03:47
Log stream很大的时候有没有map放不下的可能?多谢

面试官有提到最多有三千个用户同时在线,每个用户最多只有一个Session,所以Map的空间复杂度是O(1)的。
回复

使用道具 举报

🔗
mchzh 2020-8-26 04:51:56 | 只看该作者
全局:
lancurs 发表于 2020-8-26 04:38
面试官有提到最多有三千个用户同时在线,每个用户最多只有一个Session,所以Map的空间复杂度是O(1)的。

了解了,这是哪天的onsite啊?楼主已经拿到结果了,有啥feedback吗?多谢
回复

使用道具 举报

🔗
 楼主| lancurs 2020-8-26 05:38:51 | 只看该作者
全局:
mchzh 发表于 2020-8-26 04:51
了解了,这是哪天的onsite啊?楼主已经拿到结果了,有啥feedback吗?多谢

上周的昂赛,第二天收到拒信说不能给feeback
回复

使用道具 举报

🔗
mchzh 2020-8-26 05:45:01 | 只看该作者
全局:
lancurs 发表于 2020-8-26 05:38
上周的昂赛,第二天收到拒信说不能给feeback

看算法应该是没啥问题,楼主觉得是bq还是system design的问题呢?多谢
回复

使用道具 举报

🔗
serendipity95 2020-8-26 05:45:33 | 只看该作者
全局:
有没有大佬可以告诉一下第二题的思路~
回复

使用道具 举报

🔗
 楼主| lancurs 2020-8-26 06:11:10 | 只看该作者
全局:
mchzh 发表于 2020-8-26 05:45
看算法应该是没啥问题,楼主觉得是bq还是system design的问题呢?多谢

感觉有可能是被面第四轮的烙印黑了,面试的时候就一副不耐烦的样子,看来玄学公司不是白叫的。
回复

使用道具 举报

全局:
您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies

评分

参与人数 1大米 +2 收起 理由
serendipity95 + 2 给你点个赞!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表