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

google两轮电面

全局:

2018(10-12月) 码农类General 博士 全职@google - 内推 - 技术电面  | | Other | 应届毕业生

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

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

x
今天面的第二轮,还不有关系结果。直接上题。

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

评分

参与人数 14大米 +35 收起 理由
Friuli + 1 给你点个赞!
章鱼章鱼 + 1 给你点个赞!
uopsdod + 1 赞一个
hakunamatatal + 2 很有用的信息!
Self_Learner + 2 给你点个赞!

查看全部评分


上一篇:小绿车店面
下一篇:Bloomberg On Campus Interview 新鲜挂经……哎求大米求安慰

本帖被以下淘专辑推荐:

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

使用道具 举报

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

使用道具 举报

推荐
lovemyisa 2018-11-21 03:17:57 | 只看该作者
全局:
我的思路。
  1. class Endpoint{
  2.     int time;
  3.     boolean isend;
  4.     List<Integer> range;
  5.     public Endpoint(int time, List<Integer> range){
  6.         this.time = time;
  7.         isend = false;
  8.         this.range = range;
  9.     }
  10. }
  11. class Solution{
  12.     public List<Integer> findMeetingTime(List<List<Integer>> list1, List<List<Integer>> list2, int T){
  13.         List<Integer> res = new ArrayList<>();
  14.         List<Endpoint> list = new ArrayList<>();
  15.         for(List<Integer> ele : list1){
  16.             Endpoint ep1 = new Endpoint(ele.get(0),ele);
  17.             Endpoint ep2 = new Endpoint(ele.get(1),ele);
  18.             ep2.isend = true;
  19.             list.add(ep1);
  20.             list.add(ep2);
  21.         }
  22.         for(List<Integer> ele : list2){
  23.             Endpoint ep1 = new Endpoint(ele.get(0),ele);
  24.             Endpoint ep2 = new Endpoint(ele.get(1),ele);
  25.             ep2.isend = true;
  26.             list.add(ep1);
  27.             list.add(ep2);
  28.         }
  29.         Collections.sort(list, (a, b)->(a.time - b.time));
  30.         int pool = 0;
  31.         Endpoint prev = null;
  32.         for(Endpoint cur : list){
  33.             if(!cur.isend) pool++;
  34.             else{
  35.                 pool--;
  36.             }
  37.             if(pool == 2 ){
  38.                 int start = Math.max(prev.range.get(0), cur.range.get(0));
  39.                 int end = Math.min(prev.range.get(1), cur.range.get(1));
  40.                 if(end - start >= T){
  41.                     res.add(start);
  42.                     res.add(end);
  43.                     return res;
  44.                 }
  45.             }
  46.             prev = cur;
  47.         }
  48.         return res;
  49.     }
  50. // follow up K 人:
  51. K 个人-> pool size == k
  52. int i = 0;
  53. while(i < list.size()){
  54.     int pool = 0;
  55.     int endmin = Integer.MAX_VALUE;
  56.     for(int j = 0; j < k; j++){
  57.         if(!list.get(j).isend) pool++;
  58.         else{
  59.             endmin = Math.min(endmin, list.get(j).time);
  60.             pool--;
  61.         }
  62.         if(pool == k){
  63.             res.add(list.get(j).time);
  64.             res.add(endmin);
  65.             return res;
  66.         }
  67.     }
  68. }   
  69.    public static void main(String[] args){
  70.         Solution test = new Solution();
  71.         List<List<Integer>> l1 = new ArrayList<>();
  72.         List<Integer> range = new ArrayList<>();
  73.         range.add(1);range.add(3); l1.add(range);
  74.         range = new ArrayList<>(); range.add(6); range.add(9);l1.add(range);
  75.         range = new ArrayList<>(); range.add(12); range.add(15);l1.add(range);
  76.         List<List<Integer>> l2 = new ArrayList<>();
  77.         range = new ArrayList<>();
  78.         range.add(4);range.add(5); l2.add(range);
  79.         range = new ArrayList<>(); range.add(7);range.add(10); l2.add(range);
  80.         range = new ArrayList<>(); range.add(11);range.add(16); l2.add(range);
  81.         List<Integer> res = test.findMeetingTime(l1, l2, 2);
  82.         System.out.println(res.get(0) + " " + res.get(1));

  83.     }
  84. }
复制代码

评分

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

查看全部评分

回复

使用道具 举报

全局:
请问楼主第二问的follow up是用什么方法写的?我现在想到用divide and conquer的方法写,貌似用的空间有点大,需要用k 个 heap存potential candidates
回复

使用道具 举报

全局:
请问第一题除了头节点,尾节点和链表里没有这个节点之外,还有什么corner case吗
回复

使用道具 举报

🔗
kzhu 2018-11-9 14:56:32 | 只看该作者
全局:
Lcq3527 发表于 2018-11-9 13:30
请问楼主第二问的follow up是用什么方法写的?我现在想到用divide and conquer的方法写,貌似用的空间有点 ...

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

使用道具 举报

🔗
 楼主| rayluck4 2018-11-9 22:33:07 | 只看该作者
全局:
飞人殿下 发表于 2018-11-9 14:19
请问第一题除了头节点,尾节点和链表里没有这个节点之外,还有什么corner case吗

应该就这几个,我当时没睡醒,一个都没考虑
回复

使用道具 举报

🔗
tjuwdz95 2018-11-9 23:43:56 | 只看该作者
全局:
楼主能给点思路吗第二题,感觉一开始是merge intervals不过是取交集。。。
回复

使用道具 举报

🔗
EbyccoCheng 2018-11-10 00:06:03 | 只看该作者
全局:
我觉得第二题可以用mergeinterval的思路吧 一个map, <开始的时间,1>, <结束的时间,-1>
然后开始扫这个map,如果累计到了k,说明k个人都有时间了,当不再等于k的时候,少了多少就是多少个人走了,记录这个时间,就是k个人开会的时间
回复

使用道具 举报

🔗
 楼主| rayluck4 2018-11-10 03:59:43 | 只看该作者
全局:
kzhu 发表于 2018-11-9 14:56
**** 本内容被作者隐藏 ****

我差不多是这么说的,面试小哥没反对
回复

使用道具 举报

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

本版积分规则

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