一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 1514|回复: 8
收起左侧

问两道google的面试题

[复制链接] |试试Instant~ |关注本帖
一回头的温柔 发表于 2016-1-29 11:10:56 | 显示全部楼层 |阅读模式

2016(1-3月) 码农类 硕士 全职@Google - Other - Onsite |Otherfresh grad应届毕业生

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

您需要 登录 才可以下载或查看,没有帐号?获取更多干货,去instant注册!

x
. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
问大家两道google的面经题,有思路的请解答一下,看来原帖中的讨论,依然不太懂。
1.就是一个interface,里面有increment, lastMinute,lastHour,lastDay这几个method。
目标是call last那几个函数的时候回返回前一分钟,一小时,一天内的request的数量。. 1point 3acres 璁哄潧
具体的做法就是楼上大牛说的circular buffer,开一个86400的buffer然后转着圈儿update就好了。. 鍥磋鎴戜滑@1point 3 acres
. 1point3acres.com/bbs
2.第一轮:亚裔(听名字不像中国人?)   一堆人参加比赛,最开始谁和谁先比是确定的,比赛是两两配对,一轮一轮进行,print出若有round和可能的组合。比如 有 ABCD四个人比赛, 那结果是:. 1point3acres.com/bbs
1  A - B
1  C - D.鏈枃鍘熷垱鑷�1point3acres璁哄潧. more info on 1point3acres.com
2  A - C
2  A - D. from: 1point3acres.com/bbs
2  B - C
2  B - D
但是要考虑一个情况,就是有五个人比赛,比如 ABCDE五个人, 那么E这个人可能是在C和D比完后和他俩的胜者比,或者E 和 AB的胜者比。或者E 和 ABCD的胜者比。. from: 1point3acres.com/bbs
问题:1.用什么数据结构存比赛者。 就说二叉树就行了,把比赛者存在叶子节点,怎么构成不需要你考虑。
          2. print出结果(应该就是postorder traversal了)


本帖被以下淘专辑推荐:

aifer 发表于 2016-1-29 11:25:36 | 显示全部楼层
你的问题是什么?
回复 支持 反对

使用道具 举报

johnjavabean 发表于 2016-1-29 14:20:54 | 显示全部楼层
第二题没太懂,是循环积分赛还是淘汰赛?
回复 支持 反对

使用道具 举报

 楼主| 一回头的温柔 发表于 2016-1-29 14:27:43 | 显示全部楼层
aifer 发表于 2016-1-29 11:25
你的问题是什么?

能不能分别讲讲两题的思路?
回复 支持 反对

使用道具 举报

 楼主| 一回头的温柔 发表于 2016-1-29 14:28:25 | 显示全部楼层
johnjavabean 发表于 2016-1-29 14:20
第二题没太懂,是循环积分赛还是淘汰赛?
. 鍥磋鎴戜滑@1point 3 acres
同不太懂,我是在别的面经上贴过来的,第一题的思路能说说看吗
回复 支持 反对

使用道具 举报

aifer 发表于 2016-1-29 23:21:31 | 显示全部楼层
aifer 发表于 2016-1-29 11:25
你的问题是什么?

第一题我看的不是很明白我就不说了。说说第二题。我的理解是,这个对阵的树形结构是Input。树的所有叶子就是所有参赛队伍。用dfs的方式分别访问左右子树,并将参赛队伍的list自底向上逐层向上归并。同时在每一层打印该层左右子树返回的list的所有组合。大概代码是这样:
List dfs(TreeNode root) {
    if (root == null) return null list;. 1point3acres.com/bbs
    List left = dfs(root.left);
    List right = dfs(root.right);

    if (left.isEmpty() && right.isEmpty() { // a leaf node
        List res = new List();
        res.add(root.val);
        return res;
    }
    else if(left.isEmpty() || right.isEmpty()) // 某个队伍对阵为空
        return left.isEmpty()? right : left;. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
    else {
        // print permutation of elements in left and right list.
        for ( element  e in left)
             for (element el in right). 鍥磋鎴戜滑@1point 3 acres
                 print(e - el);

        left.addAll(right); // return all teams from left and right subtree to up level
        return left;
    }



回复 支持 反对

使用道具 举报

LYJALEX__ 发表于 2016-1-30 17:51:51 | 显示全部楼层
哈哈换头像啦楼主
回复 支持 反对

使用道具 举报

johnjavabean 发表于 2016-2-1 17:57:55 | 显示全部楼层
aifer 发表于 2016-1-29 23:21
第一题我看的不是很明白我就不说了。说说第二题。我的理解是,这个对阵的树形结构是Input。树的所有叶子 ...

看上去好像是对的...但写的有点奇怪...
回复 支持 反对

使用道具 举报

aifer 发表于 2016-2-2 01:19:22 | 显示全部楼层
johnjavabean 发表于 2016-2-1 17:57.1point3acres缃
看上去好像是对的...但写的有点奇怪...

伪代码+真代码的结合体。。
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-3 03:13

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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