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

Google实习电面

全局:

2016(7-9月) 码农类General 硕士 实习@google - 内推 - 技术电面  | | Other | 其他

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

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

x
第一个人的第一个问题是Word BreakII.写完后他问我为什么选择set作为字典容器.我说我一般有3个选择. 1. Set(rbtree,logn time) 2.Unordered_set(hash table, may use more space,为了处理碰撞保持合适的load factor,空间小会退化成线性) 3.trie(空间小)。
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
充内容 (2015-11-9 02:53):
word breakII的链接     感觉面试好难  一开始就上来那么leetcode hard的题目,还问了25分钟system design

评分

参与人数 6大米 +73 收起 理由
whdawn + 40
muybienw + 5 感谢分享!
mzhqlh + 10 感谢分享!
JoeWest + 10 感谢分享!
tq5124 + 5 感谢分享!

查看全部评分


上一篇:Microsoft HR电面
下一篇:airbnb现场面经,已跪
全局:
写了下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. }
复制代码
回复

使用道具 举报

推荐
 楼主| abcd1992719g 2015-11-9 02:25:58 | 只看该作者
全局:
Augustus 发表于 2015-11-9 02:13
要跑test  case吗?感觉这么短时间写出来还能跑过case好难。。。

面试官给的case能跑过,但是我后来自己写了几个case,发现有bug...感觉这个interval的case太多了 泪奔TAT 只有2点积分,一小时只能回复2条消息 0.0
回复

使用道具 举报

推荐
 楼主| abcd1992719g 2015-11-9 02:14:21 | 只看该作者
全局:
宝贝忆彼岸 发表于 2015-11-9 01:49
那这样岂不是[1,5],[6,8]都down掉了?为什么会产生[1,2,1]这样的数据?

B在[1,2]内是好的,[1,2]内A不能工作 B可以,所以是1
回复

使用道具 举报

🔗
 楼主| abcd1992719g 2015-11-9 01:11:30 | 只看该作者
全局:
好难,求大米,求实习 ><

评分

参与人数 1大米 +10 收起 理由
JoeWest + 10 感谢分享!

查看全部评分

回复

使用道具 举报

全局:
请问机器B[2,5]的意思是2-5 down掉了吗?还是说只有2和5是好的?
回复

使用道具 举报

🔗
 楼主| abcd1992719g 2015-11-9 01:23:57 | 只看该作者
全局:
宝贝忆彼岸 发表于 2015-11-9 01:23
请问机器B[2,5]的意思是2-5 down掉了吗?还是说只有2和5是好的?

[2,5]range内都down了
回复

使用道具 举报

全局:

那这样岂不是[1,5],[6,8]都down掉了?为什么会产生[1,2,1]这样的数据?
回复

使用道具 举报

🔗
Augustus 2015-11-9 02:13:12 | 只看该作者
全局:
要跑test  case吗?感觉这么短时间写出来还能跑过case好难。。。
回复

使用道具 举报

全局:
abcd1992719g 发表于 2015-11-9 02:14
B在[1,2]内是好的,[1,2]内A不能工作 B可以,所以是1

哦哦,明白了,感谢lz耐心解答!
回复

使用道具 举报

🔗
tq5124 2015-11-9 09:55:55 | 只看该作者
全局:
好难的实习电面。。。
回复

使用道具 举报

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

本版积分规则

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