[职场感言] 工作一年了,聊聊三件事

一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货
E轮2.5亿美元融资
K12教育独角兽一起作业
北京-诚聘人工智能/教育/大数据岗
坐标湾区
Games Startup
招聘游戏开发工程师
游戏初创公司招聘工程师、UIUX Designer和游戏策划
码农求职神器Triplebyte:
不用海投
内推多家公司面试
把贵司招聘信息放这里
查看: 2885|回复: 21
收起左侧

Google new grad phone Interview

[复制链接] |试试Instant~ |关注本帖
andysim3d 发表于 2015-7-15 05:26:01 | 显示全部楼层 |阅读模式

2015(7-9月) 码农类General 硕士 全职@Google - 内推 - 在线笔试  | Other | fresh grad应届毕业生

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

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

x
下午4点半接到的电话,是一个老印,口音不算太重。
算法题(?)一道,给一个
public interface Table {
  // Set the cell at (x, y) to value.
  public void set(int x, int y, int value);

来源一亩.三分地论坛.
  // Compute the sum of values from (0, 0) to (x, y), inclusive.
  public int sum(int x, int y);
}
让我实现set 和sum。. from: 1point3acres
给定了size,但要求dynamic fixed size.. 围观我们@1point 3 acres
我选了2d array
[size=13.3333330154419px]实现了set, sum
[size=13.3333330154419px]要分析time complexity.
[size=13.3333330154419px]set O(1)
[size=13.3333330154419px]sum O(n^2)
[size=13.3333330154419px]问能不能优化
[size=13.3333330154419px]又建了一个表计算每一行0 到当前位置的值, 将sum变成了O(n). 一亩-三分-地,独家发布
[size=13.3333330154419px]又问如果是set不常用sum很常用能否优化
[size=13.3333330154419px]干脆将第二个表换成计算0,0 到当前位置的和,这样sum变成O(1) set变成O(n^2)
[size=13.3333330154419px]然后又问那第一个array还要么?想了一下不用了,可以用data[x][y] + data[x-1][y-1] - data[x-1][y] - data[x][y-1]计算原始值,然后计算差值并叠加即可。
[size=13.3333330154419px]最后又让分析了下时间复杂度,
[size=13.3333330154419px]set O(n^2)
[size=13.3333330154419px]sum O(1)

[size=13.3333330154419px]在google doc上有代码,权限不够不能发。
[size=13.3333330154419px]docs.google.com/document/d/(删掉这里)15jpoZB6UodYRGyrVvLM2Zc37ZBTZZtrdkGQytQ_vf0Q
(删掉这里)[size=13.3333330154419px]/edit[size=13.3333330154419px]为自己攒人品




补充内容 (2015-7-15 05:28):
链接发错了,这个才是。请手动粘贴 docs.google.com/a/stevens.edu/document/d/(删掉这里)15jpoZB6UodYRGyrVvLM2Zc37ZBTZZtrdkGQytQ_vf0Q(删掉这里)/edit?usp=sharing

评分

2

查看全部评分

 楼主| andysim3d 发表于 2015-7-15 10:01:35 | 显示全部楼层
刚发现我的google doc权限设得是只有同校可见,现在已经开放评论权限~
回复 支持 反对

使用道具 举报

 楼主| andysim3d 发表于 2015-7-15 10:18:16 | 显示全部楼层
sorry, 这个url是可以访问的: https://docs.google.com/document/d/(删掉这里)15jpoZB6UodYRGyrVvLM2Zc37ZBTZZtrdkGQytQ_vf0Q(删掉这里)/edit?usp=sharing
回复 支持 反对

使用道具 举报

 楼主| andysim3d 发表于 2015-7-15 10:19:24 | 显示全部楼层
sorry, 这个url可以访问并评论: docs.google.com/document/d/(删掉这里)15jpoZB6UodYRGyrVvLM2Zc37ZBTZZtrdkGQytQ_vf0Q/edit
回复 支持 反对

使用道具 举报

umd2011 发表于 2015-7-15 11:01:39 | 显示全部楼层
祝你好运~~~
弱弱的问一下,电面都是怎么进行的? 1个手拿电话,一个手敲键盘写代码(和面试官共享一个页面)?
回复 支持 反对

使用道具 举报

 楼主| andysim3d 发表于 2015-7-15 12:30:27 | 显示全部楼层
umd2011 发表于 2015-7-15 11:01
祝你好运~~~
弱弱的问一下,电面都是怎么进行的? 1个手拿电话,一个手敲键盘写代码(和面试官共享一个页 ...

恩,戴耳机啊。
回复 支持 反对

使用道具 举报

zhuli19901106 发表于 2015-7-15 21:17:52 | 显示全部楼层
二维树状数组,我还以为这种不会出现在电面里呢。。

补充内容 (2015-7-15 21:21):
要在电面中成功写出二维的,感觉很难。。。面试官有要求更优化的解吗?
回复 支持 反对

使用道具 举报

 楼主| andysim3d 发表于 2015-7-15 21:26:02 | 显示全部楼层
zhuli19901106 发表于 2015-7-15 21:17
二维树状数组,我还以为这种不会出现在电面里呢。。

补充内容 (2015-7-15 21:21):

mum,还好,我答的还蛮顺。期间有几个地方下标弄混了面试官还提示我来着。.本文原创自1point3acres论坛
就我目前的算法程度,面试做的话应该没有更优化解了吧。
Mobile Apps Category (English)728x90
回复 支持 反对

使用道具 举报

zhuli19901106 发表于 2015-7-15 22:25:35 | 显示全部楼层
andysim3d 发表于 2015-7-15 21:26
mum,还好,我答的还蛮顺。期间有几个地方下标弄混了面试官还提示我来着。
就我目前的算法程度,面试做 ...

用二位树状数组的话,求和与修改都可以到logN,请问这个面试官有要求吗?
回复 支持 反对

使用道具 举报

 楼主| andysim3d 发表于 2015-7-15 22:47:18 | 显示全部楼层
zhuli19901106 发表于 2015-7-15 22:25
用二位树状数组的话,求和与修改都可以到logN,请问这个面试官有要求吗?

哦,面试官有强调set不怎么用而sum用的很频繁,所以我考虑了之后选择set O(n^2) sum O(1)的解法。
回复 支持 反对

使用道具 举报

zhuli19901106 发表于 2015-7-15 22:51:21 | 显示全部楼层
andysim3d 发表于 2015-7-15 22:47
哦,面试官有强调set不怎么用而sum用的很频繁,所以我考虑了之后选择set O(n^2) sum O(1)的解法。

哦,那就简单多了。祝楼主好运,不过建议你把二维树状数组搞懂哦,onsite面这种难度很正常的。
回复 支持 反对

使用道具 举报

RiverZ 发表于 2015-7-15 23:12:40 | 显示全部楼层
楼主你好, 请问 sum 是指算行列式的值吗?
回复 支持 反对

使用道具 举报

 楼主| andysim3d 发表于 2015-7-15 23:57:11 | 显示全部楼层
RiverZ 发表于 2015-7-15 23:12
楼主你好, 请问 sum 是指算行列式的值吗?

计算从 0,0 到x,y所有值的和
回复 支持 反对

使用道具 举报

say543 发表于 2015-7-17 06:33:52 | 显示全部楼层
弱弱的问一下 二维树状数组 怎么进行logN的?
回复 支持 反对

使用道具 举报

zhuli19901106 发表于 2015-7-17 15:00:38 | 显示全部楼层
say543 发表于 2015-7-17 06:33. 1point3acres
弱弱的问一下 二维树状数组 怎么进行logN的?

抱歉,当时没说仔细,单次操作应该是log N * log M
这儿有个topcoder的资料:https://www.topcoder.com/communi ... nary-indexed-trees/
回复 支持 反对

使用道具 举报

readman 发表于 2015-7-18 00:56:26 | 显示全部楼层
zhuli19901106 发表于 2015-7-17 15:00. From 1point 3acres bbs
抱歉,当时没说仔细,单次操作应该是log N * log M
这儿有个topcoder的资料:https://www.topcoder.com/ ...

树状数组不会的, 用线段树啊....
某大神不说过么...树状数组能干的, 线段树都能
回复 支持 反对

使用道具 举报

 楼主| andysim3d 发表于 2015-7-18 01:34:33 | 显示全部楼层
zhuli19901106 发表于 2015-7-15 22:51
哦,那就简单多了。祝楼主好运,不过建议你把二维树状数组搞懂哦,onsite面这种难度很正常的。

多谢啦,我已经看完了树状数组的算法了。
回复 支持 反对

使用道具 举报

zhuli19901106 发表于 2015-7-18 01:54:17 | 显示全部楼层
readman 发表于 2015-7-18 00:56
树状数组不会的, 用线段树啊....
某大神不说过么...树状数组能干的, 线段树都能
. 1point 3acres 论坛
但这两者编码难度还是有差别的。。线段树明显复杂了些
回复 支持 反对

使用道具 举报

readman 发表于 2015-7-18 03:12:30 | 显示全部楼层
zhuli19901106 发表于 2015-7-18 01:54
但这两者编码难度还是有差别的。。线段树明显复杂了些
. Waral 博客有更多文章,
public static void add(int[][] t, int r, int c, int value) {
                for (int i = r; i < t.length; i |= i + 1)
                        for (int j = c; j < t[0].length; j |= j + 1)
                                t[j] += value;
        }

        public static int sum(int[][] t, int r, int c) {.留学论坛-一亩-三分地
                int res = 0;
                for (int i = r; i >= 0; i = (i & (i + 1)) - 1). from: 1point3acres
                        for (int j = c; j >= 0; j = (j & (j + 1)) - 1)
                                res += t[j];
                return res;
        }. Waral 博客有更多文章,

        public static int sum(int[][] t, int r1, int c1, int r2, int c2) {
                return sum(t, r2, c2) - sum(t, r1 - 1, c2) - sum(t, r2, c1 - 1) + sum(t, r1 - 1, c1 - 1);
        }

        public static int get(int[][] t, int r, int c) {
                return sum(t, r, c, r, c);
        }.留学论坛-一亩-三分地

        public static void set(int[][] t, int r, int c, int value) {
                add(t, r, c, -get(t, r, c) + value);
        }

        public static void main(String[] args) {
                int[][] t = new int[4][4];
                add(t, 0, 0, 1);. From 1point 3acres bbs
                add(t, 0, 1, 1);. 1point3acres
                add(t, 1, 0, 1);. 围观我们@1point 3 acres
                add(t, 1, 1, 1);
. more info on 1point3acres
                System.out.println(4 == sum(t, 0, 0, 3, 3));// 1+1+1+1 + 0000...
        }
. visit 1point3acres for more.
补充内容 (2015-7-18 03:12):
- - 好难在电面写...
回复 支持 反对

使用道具 举报

zhuli19901106 发表于 2015-7-18 03:58:25 | 显示全部楼层
readman 发表于 2015-7-18 03:12. 一亩-三分-地,独家发布
public static void add(int[][] t, int r, int c, int value) {
                for (int i = r; i < t.length; i |= ...

嗯,如果思路很熟的话,代码简洁就是一大优势了。面试时代码一长就容易紧张,然后就容易出bug~
回复 支持 反对

使用道具 举报

本版积分规则

提醒:发帖可以选择内容隐藏,部分板块支持匿名发帖。请认真读完以下全部说明:

■隐藏内容方法: [hide=200]你想要隐藏的内容比如面经[/hide]
■意思是:用户积分低于200则看不到被隐藏的内容
■可以自行设置积分值,不建议太高(200以上太多人看不到),也不建议太低(那就没必要隐藏了)
■建议只隐藏关键内容,比如具体的面试题目、涉及隐私的信息,大部分内容没必要隐藏。
■微信/QQ/电子邮件等,为防止将来被骚扰甚至人肉,以论坛私信方式发给对方最安全。
■匿名发帖的板块和方法:http://www.1point3acres.com/bbs/thread-405991-1-1.html

关闭

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

手机版|小黑屋|一亩三分地论坛声明

custom counter

GMT+8, 2018-5-24 03:06

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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