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

Google实习电面

🔗
Neil_Acton 2015-11-13 08:25:22 | 只看该作者
全局:
大赞楼主分享的链接! 多谢! 加油
回复

使用道具 举报

🔗
muybienw 2015-11-13 11:51:05 | 只看该作者
全局:
赞头像,两米大长腿!
回复

使用道具 举报

🔗
zjh08177 2015-11-18 01:44:56 | 只看该作者
全局:
这难度和地里好多实习面完全不是一个档次啊T^T 恭喜楼主~~
回复

使用道具 举报

🔗
bobzhang2004 2015-12-7 05:00:31 | 只看该作者
全局:
写了下merge logs的题,这题确实有些麻烦。。欢迎指教
  1. public class MergeIntervalLogs {

  2.         class Point {
  3.                 int num;
  4.                 int flag;
  5.                 public Point(int num, int flag) {
  6.                         this.num = num;
  7.                         this.flag = flag;
  8.                 }
  9.         }
  10.        
  11.         class Record {
  12.                 Point point;
  13.                 int count;
  14.                 public Record(Point p, int c) {
  15.                         point = p;
  16.                         count = c;
  17.                 }
  18.         }
  19.         public List<int[]> mergeLogs(int[][] A, int[][] B) {
  20.                
  21.                 List<Point> points = new ArrayList<Point>();
  22.                 for (int[] arr : A) {
  23.                         points.add(new Point(arr[0], 1));
  24.                         points.add(new Point(arr[1], 0));
  25.                 }
  26.                 for (int[] arr : B) {
  27.                         points.add(new Point(arr[0], 1));
  28.                         points.add(new Point(arr[1], 0));
  29.                 }
  30.                 Collections.sort(points, new Comparator<Point>() {
  31.                         public int compare(Point p1, Point p2) {
  32.                                 if(p1.num == p2.num) {
  33.                                         return p1.flag - p2.flag;
  34.                                 }
  35.                                 return p1.num - p2.num;
  36.                         }
  37.                 });
  38.                 int count = 0;
  39.                 List<Record> records = new ArrayList<Record>();
  40.                 for (Point p : points) {
  41.                         if (p.flag == 1) {
  42.                                 count++;
  43.                         } else {
  44.                                 count--;
  45.                         }
  46.                         records.add(new Record(p, count));
  47.                 }
  48.                
  49.                 return getResult(records);
  50.         }
  51.         private List<int[]> getResult(List<Record> records) {
  52.                 List<int[]> res = new ArrayList<int[]>();
  53.                 int start = records.get(0).point.num;
  54.                 int val = records.get(0).count;
  55.                 for (int i = 1; i < records.size(); i++) {
  56.                         res.add(new int[]{start, records.get(i).point.num, 2 - val});
  57.                         start = records.get(i).point.num;
  58.                         val = records.get(i).count;
  59.                 }
  60.                 return res;
  61.         }
  62.        
  63.         public static void main(String[] args) {
  64.                 int[][] A = {{1,4},{6,8}};
  65.                 int[][] B = {{2,5}};
  66.                 MergeIntervalLogs ml = new MergeIntervalLogs();
  67.                 List<int[]> res = ml.mergeLogs(A, B);
  68.                 for (int[] arr : res) {
  69.                         System.out.println(arr[0] + " " + arr[1] + " " + arr[2]);
  70.                 }
  71.         }
  72. }
复制代码
回复

使用道具 举报

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

本版积分规则

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