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

热乎狗家电面面经

全局:

2019(7-9月) 码农类General 硕士 全职@google - 猎头 - 技术电面  | | Fail | 在职跳槽

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

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

x
一直觉得狗家电面就很难,前一阵子拼命的准备dp,图,结果砸在了intersection上,废话不多说了,上题

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


求米下锅!!祝大家好运。

评分

参与人数 9大米 +20 收起 理由
chungjin + 1 很有用的信息!
jjyy0610 + 1 赞一个
匿名用户-YGDCN + 10
Frankhappens + 1 给你点个赞!
Zetecx + 3 谢谢分享!

查看全部评分


上一篇:亚麻店面
下一篇:Yelp OA 30min 附截图,code例子 求大米

本帖被以下淘专辑推荐:

  • · goog|主题: 90, 订阅: 13
推荐
helloteacha 2019-8-25 03:26:12 | 只看该作者
全局:
您好!
本帖隐藏的内容需要积分高于 200 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 200 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限 或 查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
回复

使用道具 举报

推荐
baldmice 2019-8-24 08:44:47 | 只看该作者
全局:
用sweep line写了下,需要每次改process的timestamps

  1. struct Proc {
  2.     string name;
  3.     int start;
  4.     int end;
  5.     Proc(string name, int start, int end) : name(name), start(start), end(end) { }
  6.     bool operator< (const Proc& p) const
  7.     {
  8.         return start < p.start;
  9.     }
  10. };

  11. vector<pair<string, int>> processExclusiveTime(vector<Proc>& procs)
  12. {
  13.     multiset<pair<int, string>> ps;
  14.     unordered_map<string, int> runnings;
  15.     unordered_map<string, int> res;
  16.     for (auto& p : procs)
  17.     {
  18.         ps.insert({p.start, p.name});
  19.         ps.insert({p.end, p.name});
  20.     }
  21.     // concurrent running count
  22.     int cur = 0;
  23.     for (auto& p : ps)
  24.     {
  25.         int t = p.first;
  26.         string name = p.second;
  27.         if (cur == 1)
  28.         {
  29.             auto it = runnings.begin();
  30.             res[it->first] += t - it->second;
  31.         }
  32.         // start p process
  33.         if (runnings.emplace(name, t).second)
  34.             ++cur;
  35.         else
  36.         {
  37.             --cur;
  38.             runnings.erase(name);
  39.         }
  40.         // update all time stamps for running instance
  41.         for (auto& pt : runnings)
  42.             pt.second = t;
  43.     }
  44.     vector<pair<string, int>> runtimes;
  45.     copy(res.begin(), res.end(), back_inserter(runtimes));
  46.     return runtimes;
  47. }
复制代码
回复

使用道具 举报

全局:
LC636 ?         
回复

使用道具 举报

🔗
 楼主| woridage1 2019-8-24 03:20:15 | 只看该作者
全局:

不太一样,636是单线程,这个是多线程,但是要找同一时间段只有一个线程在工作的时间。
回复

使用道具 举报

🔗
baldmice 2019-8-24 03:47:24 | 只看该作者
全局:
不太明白题目意思,每个元素包含开始结束时间,比如 proc {id1, 100, 200}, {id2, 150, 300} ... 所以 proc id1 [100,150] ? 所有先按起始时间sort一下
回复

使用道具 举报

全局:
Line sweep?

评分

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

查看全部评分

回复

使用道具 举报

🔗
 楼主| woridage1 2019-8-24 04:11:24 | 只看该作者
全局:
baldmice 发表于 2019-8-24 03:47
不太明白题目意思,每个元素包含开始结束时间,比如 proc {id1, 100, 200}, {id2, 150, 300} ... 所以 proc ...

嗯,你这个例子就是返回 {id1, 50} {ID2, 100} 只算单独运行的时间
回复

使用道具 举报

🔗
 楼主| woridage1 2019-8-24 04:16:09 | 只看该作者
全局:

好像是,刚搜了一下这个名次,之前没练习过,惭愧
回复

使用道具 举报

🔗
撸炉卤鹿 2019-8-24 04:19:16 | 只看该作者
全局:
woridage1 发表于 2019-8-24 04:16
好像是,刚搜了一下这个名次,之前没练习过,惭愧

其实先sort一下,用stack也可以做。。。
回复

使用道具 举报

🔗
advincenting 2019-8-24 04:34:13 | 只看该作者
全局:
面经看的少了 这个问题好像刚有人面过
回复

使用道具 举报

🔗
baldmice 2019-8-24 05:48:38 | 只看该作者
全局:
撸炉卤鹿 发表于 2019-8-24 04:19
其实先sort一下,用stack也可以做。。。

hmmm, stack怎么做?先开始的可能比后面的进程先结束了
回复

使用道具 举报

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

本版积分规则

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