聊聊在私立文理读cs的两年感受

一亩三分地论坛

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

新鲜Google面经

[复制链接] |试试Instant~ |关注本帖
tianshaobo47 发表于 2015-10-3 13:25:56 | 显示全部楼层 |阅读模式

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

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

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

x
今天下午刚面的,
面试官听口音不像美国人,但是也听不出来是哪人 啊。。
做了个简单地自我介绍就开始出题了。. visit 1point3acres for more.
打开GOOGLE DOC
给一个二维矩阵,
实现两个方法,set(int x, int y), sum(int x, int y, int val)
set 方法设一个点的值, sum得到这一点到左上角(0, 0)点左右值的和。
(1)set多,sum少
(2)set少,sum多
第二种情况主要是要在set时就把sum算好,sum就是constent time了,但是set要注意更新。

之前看到过这道题,大概准备了下,也没有细想,所以面的一般。
面试官全程Ok,感觉很冷淡。。

发面经攒RP,求on site。。

评分

1

查看全部评分

本帖被以下淘专辑推荐:

zxy_snow 发表于 2015-10-3 13:44:57 | 显示全部楼层
竟然是树状数组,简直不能太坑。。。
回复 支持 反对

使用道具 举报

bobzhang2004 发表于 2015-10-3 13:54:00 来自手机 | 显示全部楼层
这题面的很多啊。求大神分享最优解,或者提供最优解链接
回复 支持 反对

使用道具 举报

Wizmann 发表于 2015-10-3 15:45:17 | 显示全部楼层
2D树状数组修改、查询都是O(logn * logn)的。。。所以并没有set/sum多少的问题。。。

估计这题应该不是考这个的。
回复 支持 反对

使用道具 举报

Wizmann 发表于 2015-10-3 16:21:13 | 显示全部楼层
POJ 1195
和这题模型一样。

感觉这题还是在考交流和tradeoff的,不是考数据结构。

代码:
  1. #include <cstdio>
  2. #include <cstdlib>
  3. #include <cstring>
  4. #include <iostream>
  5. #include <algorithm>. 1point3acres
  6. #include <vector>

  7. using namespace std;
  8. . 留学申请论坛-一亩三分地
  9. #define print(x) cout << x << endl
  10. #define input(x) cin >> x
    -google 1point3acres

  11. typedef long long llint;

  12. inline int lowbit(int x) { return x & (-x); }

  13. struct BITree {
  14.     vector<llint> _tree;

  15.     void init(int size) {
  16.         _tree.resize(size + 1);
  17.     }

  18.     void add(int pos, int value) {
  19.         while (pos < _tree.size()) {
  20.             _tree[pos] += value;
  21.             pos += lowbit(pos);
  22.         }
  23.     }.1point3acres网
  24. . 围观我们@1point 3 acres
  25.     llint sum(int pos) {
  26.         llint res = 0; 来源一亩.三分地论坛.
  27.         while (pos > 0) {
  28.             res += _tree[pos];
  29.             pos -= lowbit(pos);.本文原创自1point3acres论坛
  30.         }. From 1point 3acres bbs
  31.         return res;
  32.     }

  33.     llint sum(int a, int b) {-google 1point3acres
  34.         return sum(b) - sum(a - 1);
  35.     }
  36. };
  37. .留学论坛-一亩-三分地
  38. struct BITree_2D {
  39.     vector<BITree> _tree;

  40.     void init(int n, int m) {
  41.         _tree.resize(n + 1);-google 1point3acres
  42.         for (int i = 0; i <= n; i++) {
  43.             _tree[i].init(m);
  44.         }
  45.     }

  46.     void add(int y, int x, int value) {
  47.         while (y < _tree.size()) {
  48.             _tree[y].add(x, value);
  49.             y += lowbit(y);
  50.         }
  51.     }. more info on 1point3acres

  52.     llint sum(int y, int x) {
  53.         llint res = 0;
  54.         while (y > 0) {. 一亩-三分-地,独家发布
  55.             res += _tree[y].sum(x);
  56.             y -= lowbit(y);
  57.         }
  58.         return res;
  59.     }

  60.     llint sum(int y1, int x1, int y2, int x2) {.留学论坛-一亩-三分地
  61.         llint a = sum(y2, x2);
  62.         llint b = sum(y1 - 1, x1 - 1);. more info on 1point3acres
  63.         llint c = sum(y2, x1 - 1);. 牛人云集,一亩三分地
  64.         llint d = sum(y1 - 1, x2);

  65.         return a - c - d + b;
  66.     }
  67. };

  68. int main() {
  69.     freopen("input.txt", "r", stdin);
  70.     int a, b, c, d, e;
  71.     BITree_2D tree;
  72.     while (input(a) && a != 3) {
  73.         if (a == 0) {
  74.             input(b);
  75.             tree.init(b, b);
  76.         }
  77.         if (a == 1) {. 1point 3acres 论坛
  78.             scanf("%d%d%d", &b, &c, &d);
  79.             b++;
  80.             c++;
  81.             tree.add(c, b, d);
  82.         }
  83.         if (a == 2) {
  84.             scanf("%d%d%d%d", &b, &c, &d, &e);
  85.             b++;
  86.             c++;.留学论坛-一亩-三分地
  87.             d++;. visit 1point3acres for more.
  88.             e++;
  89.             print(tree.sum(c, b, e, d));-google 1point3acres
  90.         }-google 1point3acres
  91.     }.本文原创自1point3acres论坛
  92.     return 0;
  93. }
复制代码
回复 支持 反对

使用道具 举报

zxy_snow 发表于 2015-10-3 17:13:26 | 显示全部楼层
Wizmann 发表于 2015-10-3 16:21
POJ 1195 来源一亩.三分地论坛.
和这题模型一样。

你这个代码不还是树状数组么。。
回复 支持 反对

使用道具 举报

hj867955629 发表于 2015-10-5 02:01:17 | 显示全部楼层
楼主用的树状数组还是先求出每个子矩阵和的预处理方法?结果怎么样?
Mobile Apps Category (English)728x90
回复 支持 反对

使用道具 举报

 楼主| tianshaobo47 发表于 2015-10-5 09:19:04 | 显示全部楼层
hj867955629 发表于 2015-10-5 02:01
楼主用的树状数组还是先求出每个子矩阵和的预处理方法?结果怎么样?

我都不懂树状数组是什么。。 直接就是存了SUM。。
面试官很冷淡,也不知道是不是他要的答案。很可能会悲剧。。
回复 支持 反对

使用道具 举报

hj867955629 发表于 2015-10-5 10:33:38 | 显示全部楼层
tianshaobo47 发表于 2015-10-5 09:19
我都不懂树状数组是什么。。 直接就是存了SUM。。
面试官很冷淡,也不知道是不是他要的答案。很可能会悲 ...

记得更新哈!这样能判断要不要仔细学习下树状数组了。。
回复 支持 反对

使用道具 举报

Linzertorte 发表于 2015-10-5 11:10:57 | 显示全部楼层
hj867955629 发表于 2015-10-5 10:33. visit 1point3acres for more.
记得更新哈!这样能判断要不要仔细学习下树状数组了。。
. 1point 3acres 论坛
直接学了吧
回复 支持 反对

使用道具 举报

darkwowgamer 发表于 2015-10-11 03:46:21 | 显示全部楼层
回复 支持 反对

使用道具 举报

tangvictor 发表于 2015-10-19 04:59:58 | 显示全部楼层
贴个我写的用sum二维数组的方法。。
  1. class Array:
  2.         def __init__(self, A):. more info on 1point3acres
  3.                 self.sum = [[0] * (len(A[0]) + 1) for i in range(len(A) + 1)]
    . from: 1point3acres
  4.                 self.A = A
  5.                 self.set(0, 0, self.A[0][0])

  6.         def set(self, i, j, value):
  7.                 self.A[i][j] = value
  8.                 for x in range(i + 1, len(self.sum)):
  9.                         for y in range(j + 1, len(self.sum)):. Waral 博客有更多文章,
  10.                                 self.sum[x][y] = self.sum[x - 1][y] + self.sum[x][y - 1] + self.A[x - 1][y - 1] - self.sum[x - 1][y - 1]

  11.         def get(self, i, j):
  12.                 return self.sum[i + 1][j + 1]
复制代码
回复 支持 反对

使用道具 举报

本版积分规则

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

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

关闭

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

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

custom counter

GMT+8, 2018-5-21 06:15

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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