[八我司] 介绍一下Uber tech stack和各个大组的情况

一亩三分地论坛

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

Google电面 2015/10/08

[复制链接] |试试Instant~ |关注本帖
romanchelsea 发表于 2015-10-9 03:18:50 | 显示全部楼层 |阅读模式

2015(10-12月) 码农类General 硕士 全职@Google - 内推 - 技术电面  | Other | fresh grad应届毕业生

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

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

x
迟到了10分钟,一个白人面试官打来的电话。
面试官的电话地址是,the Walking Dead里面,第五季所处的地方。

问的问题地里曾经出现过,大概一两周前。
问的形式可能不太一样,不过idea都是一样的。

实现一个interface SummableTable, 修改一个2Darray里面的信息。.本文原创自1point3acres论坛
两个方法. 牛人云集,一亩三分地
void set(int x, int y, int value) // arr[x][y] = value;
. more info on 1point3acresint sum(int x, int y) // 求以(0, 0)到(x, y)为顶点的矩形内所有value的sum
来源一亩.三分地论坛.
之前看别人的面经,不知道该怪我自己太笨,还是那个帖子里说解法的人表达能力太差。反正我是没看懂那个帖子里的解法。

followup, 除了brute force的方法, 有什么方法可以快一点
面试官提示说可以再来个array,保存sum

再问,有没有方法可以只用一个array
面试官提示说可以只用一个arr 保存sum,问我怎么得到某个index的值. 围观我们@1point 3 acres
当时我不是很确定,value[x][y] = sum[x][y] - (sum[x - 1][y] + sum[x][y - 1] - sum[x - 1][y - 1]);
我确定的时候,他说时间差不多了,还有什么问题想问我。
. from: 1point3acres
最后问问完问题后,我说:“不好意思能不能多说一句”, 然后把以上等式写出来。
面试官无奈滴笑了。

GG!. 留学申请论坛-一亩三分地

评分

1

查看全部评分

本帖被以下淘专辑推荐:

xnature 发表于 2015-10-9 22:32:11 | 显示全部楼层
xnature 发表于 2015-10-9 04:02. from: 1point3acres
补充内容 (2015-10-9 04:08):
用C++写了,不知道问题理解对没有。

第一个是O(1), O(n^2).留学论坛-一亩-三分地
第二个是O(n^2), O(1)
第三个是O(n), O(n)
回复 支持 1 反对 0

使用道具 举报

leixiang5 发表于 2015-10-9 03:31:42 | 显示全部楼层
貌似题目不是很难。不过相信楼主有其他公司等着你。。
回复 支持 反对

使用道具 举报

clfhaha1234 发表于 2015-10-9 03:45:12 | 显示全部楼层
只用一个数组把一列的和缓存下来,然后set时O(N)更新,sum的时候O(N)求和?
回复 支持 反对

使用道具 举报

xnature 发表于 2015-10-9 04:02:59 | 显示全部楼层
  1. // http://www.1point3acres.com/bbs/forum.php?mod=viewthread&tid=143755&extra=page%3D1%26filter%3Dauthor%26orderby%3Ddateline%26sortid%3D311%26sortid%3D311%26orderby%3Ddateline
  2. .本文原创自1point3acres论坛

  3. #include <vector>
  4. #include <iostream>
  5. using namespace std;

  6. class SummableTable {
  7. private:
  8.         int row, col;. visit 1point3acres for more.
  9.         vector<vector<int>> table;
  10. public:. 一亩-三分-地,独家发布
  11.         SummableTable(int m, int n) : row(m), col(n) {
  12.                 table = vector<vector<int>> (row, vector<int>(col, 0));
  13.         }

  14.         void set(int x, int y, int value)  {.1point3acres网
  15.                 table[x][y] = value;
  16.         }-google 1point3acres
  17. . 牛人云集,一亩三分地
  18.         int get(int x, int y) {
  19.                 int sum = 0;
  20.                 for (int i = 0; i < row; ++i) {
  21.                         for (int j = 0; j < col; ++j) {
  22.                                 sum += table[i][j];
  23.                         }
  24.                 }. 1point 3acres 论坛
  25.                 return sum;
  26.         }
  27. };. more info on 1point3acres

  28. class SummableTable2 {
  29. private:. more info on 1point3acres
  30.         int row, col;
  31.         vector<vector<int>> cumsum_table;
  32. public:
  33.         SummableTable2(int m, int n) : row(m), col(n) {. more info on 1point3acres
  34.                 cumsum_table = vector<vector<int>> (row, vector<int>(col, 0));
  35.         }

  36.         void set(int x, int y, int value)  {
  37.                 for (int i = x; i < row; ++i) {
  38.                         for (int j = y; j < col; ++j) {
  39.                                 cumsum_table[i][j] += value;
  40.                         }
  41.                 }
  42.         }

  43.         int get(int x, int y) {
  44.                 return cumsum_table[x][y];. visit 1point3acres for more.
  45.         }
  46. };
  47. . 1point 3acres 论坛
  48. class SummableTable3{
  49. private:
  50.         int row, col;. more info on 1point3acres
  51.         vector<vector<int>> rowsum_table;-google 1point3acres
  52. public:
    . visit 1point3acres for more.
  53.         SummableTable3(int m, int n) : row(m), col(n) {. 1point3acres
  54.                 rowsum_table = vector<vector<int>> (row, vector<int>(col, 0));. 牛人云集,一亩三分地
  55.         }

  56.         void set(int x, int y, int value) {
  57.                 for (int i = y; i < col; ++i) {
  58.                         rowsum_table[x][i] += value;. from: 1point3acres
  59.                 }
  60.         }

  61.         int get(int x, int y) {
  62.                 int ret = 0;. 围观我们@1point 3 acres
  63.                 for (int i = 0; i <= x; ++i) {
  64.                         ret += rowsum_table[i][y]; 来源一亩.三分地论坛.
  65.                 }. 留学申请论坛-一亩三分地
  66.                 return ret;.留学论坛-一亩-三分地
  67.         }

  68. };

  69. . more info on 1point3acres
  70. int main(int argc, char const *argv[])
  71. {
  72.         SummableTable3 tbl(2,2);
  73.         tbl.set(0, 0, 1);
  74.         tbl.set(0, 1, 2);
  75.         tbl.set(1, 0, 3);
  76.         tbl.set(1, 1, 4);
  77.         cout<<tbl.get(1,1);
  78.         return 0;
  79. }
复制代码

补充内容 (2015-10-9 04:08):
用C++写了,不知道问题理解对没有。
回复 支持 反对

使用道具 举报

zxy_snow 发表于 2015-10-9 09:45:35 | 显示全部楼层
二维树状数组,醉了,第二次在地里看到
回复 支持 反对

使用道具 举报

Tedko 发表于 2015-10-9 09:59:14 | 显示全部楼层
看看。。。楼上的写法没太明白
回复 支持 反对

使用道具 举报

 楼主| romanchelsea 发表于 2015-10-9 12:00:21 | 显示全部楼层
zxy_snow 发表于 2015-10-8 20:45
二维树状数组,醉了,第二次在地里看到

上次貌似就是你,求解什么是二维树状数组..
Mobile Apps Category (English)728x90
回复 支持 反对

使用道具 举报

zxy_snow 发表于 2015-10-9 14:28:20 | 显示全部楼层
romanchelsea 发表于 2015-10-9 12:00
上次貌似就是你,求解什么是二维树状数组..

更新和求和都是logn的一种数据结构。思想类似线段树,网上搜一下,很多文章讲
回复 支持 反对

使用道具 举报

xnature 发表于 2015-10-9 22:33:17 | 显示全部楼层
romanchelsea 发表于 2015-10-9 12:00
上次貌似就是你,求解什么是二维树状数组..
-google 1point3acres
工作面试不可能搞这么高级的数据结构了,树状数组明显overkill了
回复 支持 反对

使用道具 举报

zxy_snow 发表于 2015-10-10 09:06:17 | 显示全部楼层
xnature 发表于 2015-10-9 22:33
工作面试不可能搞这么高级的数据结构了,树状数组明显overkill了

没啥高级的,就一个数组,就是操作神奇一点,其实也就一行,知道最好,不知道用其他方法应该也行
回复 支持 反对

使用道具 举报

hackenkreuz 发表于 2015-10-11 02:20:32 | 显示全部楼层
粗略想了一下,我的想法也是弄个二维数组,只不过每个元素记录这一行从左开始的sum。这样更新的时候从被更新的点往右更新过去一排就可以。计算真正的和的时候就把这一列往上的所有点加起来就可以。 来源一亩.三分地论坛.
应该也都是O(N)
回复 支持 反对

使用道具 举报

本版积分规则

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

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

关闭

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

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

custom counter

GMT+8, 2018-5-25 02:05

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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