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

森鲜的脸家店面

全局:

2021(1-3月) 码农类General 硕士 全职@meta - 猎头 - 技术电面  | | WaitList | 其他

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
刚刚面完一分钟来发帖,面试的是一位非常和善的白人大爷,眼神很犀利,看得出来是有水平的。


题目:

1. 设计一个数据结构,两个method: 1.insert 2.popRandom。随机弹出的概率是平均的。
    例子: insert(3) insert(3) insert(5) insert(8), popRandom-> (3: 50%, 5: 25%
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限 或 查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
一遍过 + bugfree + optimal,大爷回答并不是。只有那种显而易见的bug + 乱七八糟的算法 + 特别不optimal 才是red flag。希望大家不要太有压力,面试加油:)。

评分

参与人数 4大米 +16 收起 理由
umd2011 + 2 给你点个赞!
匿名用户-I6XA6 + 10
kuzai + 2 给你点个赞!
不知道小帅 + 2 给你点个赞!

查看全部评分


上一篇:胡萝卜VO
下一篇:水果实习面经
推荐
whiteboard 2021-3-5 23:59:14 | 只看该作者
全局:
follow up 1, c++的话用一个unordered_map和一个数组存unordered_map的iterator,这样insert和popRandom都可以O(1)

  1. //original
  2. vector<int> nums;

  3. void insert(int num)
  4. {
  5.     nums.push_back(num);
  6. }

  7. void popRandom()
  8. {
  9.     int n = nums.size();

  10.     int i = rand() % n;
  11.     nums[i] = nums.back();
  12.     nums.pop_back();
  13. }

  14. //follow up 1
  15. #define It unordered_map<int, int>::iterator
  16. unordered_map<int, int> maps; //{num, freq}
  17. vector<It> it_array;

  18. void insert_followup_1(int num)
  19. {
  20.     It it = maps.find(num);

  21.     if (it == maps.end()) {
  22.         maps[num] = 1;
  23.         it = maps.find(num);
  24.         it_array.push_back(it);
  25.     } else {
  26.         it->second++;
  27.     }   
  28. }

  29. void popRandom_followup_1()
  30. {
  31.     int n = maps.size();
  32.     int i = rand() % n;

  33.     It it = it_array[i];
  34.     if (--it->second == 0) {
  35.         maps.erase(it);
  36.         it_array[i] = it_array.back();
  37.         it_array.pop_back();
  38.     }   
  39. }
复制代码
回复

使用道具 举报

推荐
longjia 2021-2-25 20:26:38 | 只看该作者
全局:
您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限 或 查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
回复

使用道具 举报

推荐
whiteboard 2021-3-6 02:57:09 | 只看该作者
全局:
您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限 或 查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
回复

使用道具 举报

🔗
shabishabi 2021-2-25 11:30:03 | 只看该作者
全局:
前两问是array+map?不是很懂ranged tree怎么用。。。
回复

使用道具 举报

🔗
 楼主| zifanzzz 2021-2-25 12:42:25 | 只看该作者
全局:
shabishabi 发表于 2021-2-25 11:30
前两问是array+map?不是很懂ranged tree怎么用。。。

对,array+map。我没刷到这个题,一会儿去看看先。
回复

使用道具 举报

🔗
glad2mu 2021-2-25 13:46:35 | 只看该作者
全局:
zifanzzz 发表于 2021-2-25 12:42
对,array+map。我没刷到这个题,一会儿去看看先。

请问为什么是array?pop完了之后再shift么?
回复

使用道具 举报

🔗
 楼主| zifanzzz 2021-2-25 13:49:40 | 只看该作者
全局:
glad2mu 发表于 2021-2-25 13:46
请问为什么是array?pop完了之后再shift么?

pop完把最后一个塞到空位里。
回复

使用道具 举报

🔗
glad2mu 2021-2-25 13:52:24 | 只看该作者
全局:
zifanzzz 发表于 2021-2-25 13:49
pop完把最后一个塞到空位里。

哦明白了。谢谢解答!zszszs
回复

使用道具 举报

🔗
billyRandom 2021-2-25 16:00:04 | 只看该作者
全局:
第三个follow up 好像是莉蔻舞而把。楼主知道用ranged binary tree怎么做吗?
回复

使用道具 举报

🔗
aaaaal 2021-2-27 11:16:33 | 只看该作者
本楼:
全局:
多谢分享
回复

使用道具 举报

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

使用道具 举报

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

本版积分规则

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