📣 独立日限时特惠: VIP通行证立减$68
回复: 14
跳转到指定楼层
上一主题 下一主题
收起左侧

Nuro 店面面经

🔗
匿名用户-T1DWB  2021-1-17 02:52:48 |倒序浏览

2021(1-3月) MachineLearningEng 博士 全职@nuro - Other - 技术电面  | | Other | 在职跳槽

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

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

x
1. use numpy write cross entropy.
2.k种不同颜色的球,个数
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
没想出来,查到的解法 但感觉应该没这么复杂,有童鞋可以指点一下吗

评分

参与人数 1大米 +1 收起 理由
BlackPen + 1 很有用的信息!

查看全部评分


上一篇:热带雨林amazon最新oa1 oa2 oa3
下一篇:Flatiron Health MLE 電面
全局:
用线段树来维护就可以了,搜是logk,更新也是logk.
回复

使用道具 举报

推荐
jgao93 2021-2-14 11:14:36 | 只看该作者
全局:
本帖最后由 jgao93 于 2021-2-14 11:40 编辑

如果只是要求sample的复杂度为O(logn)的话用线段树是可以(不好意思这里的n是楼主的k)

  1. class SamplingSegmentTree {
  2. public:
  3.     SamplingSegmentTree(const vector<int>& weights) {
  4.         num_elements_ = weights.size();
  5.         weight_nodes_.resize(4 * num_elements_);
  6.         Construct(weights, 0, num_elements_ - 1, 0);
  7.     }
  8.    
  9.     int Sample() {
  10.         int target_weight = rand() % weight_nodes_[0];
  11.         int selected = -1;
  12.         Sample(0, num_elements_ - 1, 0, target_weight, selected);
  13.         return selected;
  14.     }
  15.    
  16. private:
  17.     size_t num_elements_;
  18.     vector<int> weight_nodes_;
  19.    
  20.     void Construct(const vector<int>& weights, int wl, int wr, int t) {
  21.         if (wl > wr) return;
  22.         if (wl == wr) {
  23.             weight_nodes_[t] = weights[wl];
  24.         } else {
  25.             int tl = 2 * t + 1;
  26.             int tr = 2 * t + 2;
  27.             int wm = wl + (wr - wl) / 2;
  28.             Construct(weights, wl, wm, tl);
  29.             Construct(weights, wm + 1, wr, tr);
  30.             weight_nodes_[t] = weight_nodes_[tl] + weight_nodes_[tr];
  31.         }
  32.     }
  33.    
  34.     void Sample(int wl, int wr, int t, int& target_weight, int& selected) {
  35.         if (selected != -1) return;
  36.         if (wl > wr) return;
  37.         if (wl == wr) {
  38.             target_weight -= weight_nodes_[t];
  39.             if (target_weight < 0) {
  40.                 selected = wl;
  41.                 weight_nodes_[t] = 0;
  42.             }
  43.         } else {
  44.             int tl = 2 * t + 1;
  45.             int tr = 2 * t + 2;
  46.             int wm = wl + (wr - wl) / 2;
  47.             Sample(wl, wm, tl, target_weight, selected);
  48.             Sample(wm + 1, wr, tr, target_weight, selected);
  49.             weight_nodes_[t] = weight_nodes_[tl] + weight_nodes_[tr];
  50.         }
  51.     }
  52. };

  53. int main() {
  54.     map<string, int> distribution;
  55.     for (int i = 0; i < 100000; ++i) {
  56.         SamplingSegmentTree sst({1,1,1,1,1});
  57.         vector<int> sample;
  58.         for (int j = 0; j < 3; ++j) {
  59.             sample.push_back(sst.Sample());
  60.         }
  61.         sort(sample.begin(), sample.end());
  62.         string key;
  63.         for (int s: sample) key += to_string(s) + " ";
  64.         ++distribution[key];
  65.     }
  66.     for (auto& entry : distribution) {
  67.         cout << entry.first << ": " << entry.second << endl;
  68.     }
  69. }
复制代码


输出结果:
  1. 0 1 2 : 10063
  2. 0 1 3 : 10054
  3. 0 1 4 : 10092
  4. 0 2 3 : 9803
  5. 0 2 4 : 10025
  6. 0 3 4 : 10018
  7. 1 2 3 : 9945
  8. 1 2 4 : 9944
  9. 1 3 4 : 9964
  10. 2 3 4 : 10092
复制代码

回复

使用道具 举报

地里匿名用户
推荐
匿名用户-T1DWB  2021-1-18 03:43:13
有统计大神可以知道一下第二题吗?
回复

使用道具 举报

🔗
xieyi318 2021-1-20 07:56:47 | 只看该作者
全局:
这是第一轮ml interview 的题吗
回复

使用道具 举报

地里匿名用户
🔗
匿名用户-T1DWB  2021-1-20 08:10:29
xieyi318 发表于 2021-1-20 07:56
这是第一轮ml interview 的题吗

recruiter通知的时候说是coding,不是ml。结果来了一个research scientist就问了这两个题,也是出乎意料
回复

使用道具 举报

🔗
fatalme 2021-1-20 12:30:18 | 只看该作者
全局:
第二题:presum + binary search + random number generator就可以做。
回复

使用道具 举报

地里匿名用户
🔗
匿名用户-T1DWB  2021-1-20 14:16:57
fatalme 发表于 2021-1-20 12:30
第二题:presum + binary search + random number generator就可以做。

这个只能做with replacement,题目要求是without replacement,presum每次都要更新
回复

使用道具 举报

🔗
alanwsx 2021-1-27 11:55:19 | 只看该作者
全局:
本帖最后由 alanwsx 于 2021-1-27 11:58 编辑

reservoir sampling能解第二题么?(我看https://en.wikipedia.org/wiki/Reservoir_sampling 有介绍一个optimal的算法,好像是log级别复杂度的)
回复

使用道具 举报

地里匿名用户
🔗
匿名用户-T1DWB  2021-1-28 05:32:49
alanwsx 发表于 2021-1-27 11:55
reservoir sampling能解第二题么?(我看https://en.wikipedia.org/wiki/Reservoir_sampling 有介绍一个opti ...

感觉是可以的,但我没太理解其中的数学,不知道reservoir size该怎么取?每次从其中取出一个sample后,如何update heap?
回复

使用道具 举报

🔗
alanwsx 2021-1-28 05:51:01 | 只看该作者
全局:
匿名者 发表于 2021-1-28 05:32
感觉是可以的,但我没太理解其中的数学,不知道reservoir size该怎么取?每次从其中取出一个sample后,如 ...

我也不知道哈哈哈
回复

使用道具 举报

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

本版积分规则

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