123
返回列表 发新帖
楼主: rayluck4
跳转到指定楼层
上一主题 下一主题
收起左侧

google两轮电面

🔗
RainCrush 2018-11-15 03:31:18 | 只看该作者
全局:
您好!
本帖隐藏的内容需要积分高于 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 给你点个赞!

查看全部评分

回复

使用道具 举报

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

使用道具 举报

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

本版积分规则

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