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

Google面经

全局:

2015(7-9月) 码农类General 硕士 全职@google - 网上海投 - 技术电面 Onsite  | | Pass | 应届毕业生

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

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

x
电面
输入是一个二维数组。要求实现 (1)set(x, y, n) 更改(x, y)值为n (2)query(x1, y1, x2, y2) 计算输出(x1, y1)为左顶点,(x2, y2)为右底点的子二维数组内所有数的和
例子:
1 2 3
4 5 6
7 8 9
query(1, 1, 2, 2) = 5 + 6 + 8 +9 = 28;
考虑(1) set很多, query很少(2)set很少,query很多

onsite
1. 给一个字典,找出两个单词满足条件(1)没有相同的字母(2)长度的乘积最大
2. Serialize an N-ary Tree 将树存到文件里,要求可以还原。
3. Stock + House robber 结合题 可以无限买卖,但卖了之后要至少隔一天才能买
4. Word Abbreviation 单词中连续的字符串可以用它的长度代替, 例如 abbreviation 可以为 a1breviation a2reviation 1bbreviation abbrevia4
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
]). 最后返回unhold[n-1]。当然可以优化空间啦

补充内容 (2015-9-1 10:13):
更正 上面是hold[i] = max(hold[i-1], unhold[i-2] - price[i]) 和 unhold[i] = max(uphold[i-1], hold[i-1] + price[i])

补充内容 (2015-9-1 10:21):
吞字。。。不明觉厉。。。hold[ i ] = max(hold[i-1], unhold[i-2] - price[ i ]) 和 unhold[ i ] = max(uphold[i-1], hold[i-1] + price[ i ])

评分

参与人数 5大米 +58 收起 理由
虾米酱 + 15
hulahu + 3 感谢分享!
whdawn + 30
jy_121 + 5 感谢分享!
MCwong + 5 欢迎来介绍你知道的情况

查看全部评分


上一篇:Amazon New York职位发的OA有人做过吗?
下一篇:LiveRamp电面面经

本帖被以下淘专辑推荐:

 楼主| adamru 2015-9-1 10:19:02 | 只看该作者
全局:
吞字。。。不明觉厉。。。hold[ i ] = max(hold[i-1], unhold[i-2] - price[ i ]) 和 unhold[ i ] = max(uphold[i-1], hold[i-1] + price[ i ])
回复

使用道具 举报

全局:
alucardzhou 发表于 2015-8-26 03:14
请问楼主能贴出网上那个答案的链接么?十分感谢

你可以搜一下树状数组,这题就是用树状数组可以达到,更新和取和都是log(n)的复杂度
回复

使用道具 举报

推荐
Linzertorte 2015-8-30 05:58:03 | 只看该作者
全局:
哇 。 你怎么不给我加分啊
回复

使用道具 举报

推荐
kelvinzhong 2015-9-20 09:04:59 | 只看该作者
全局:
买股票的那题的代码
  1. //卖完后间隔一天才能买
  2. int stockDP(vector<int> prices) {
  3.         if (prices.size() < 0) {
  4.                 return 0;
  5.         }

  6.         vector<int> t(2, 0); // 0 means hold, 1 means unhold
  7.         vector<vector<int>> dp(prices.size(), t);

  8.         // dp[i][0] = max(dp[i-1][0], dp[i-2][1] - prices[i])
  9.         // dp[i][1] = max(dp[i-1][1], dp[i-1][0] + prices[i])
  10.         dp[0][0] = -prices[0];
  11.         dp[0][1] = 0;
  12.         for (int i = 1; i < prices.size(); i ++) {
  13.                 // Case 1: hold
  14.                 if (i == 1) {
  15.                         dp[i][0] = max(dp[i-1][0], -prices[i]);
  16.                 } else {
  17.                         dp[i][0] = max(dp[i-1][0], dp[i-2][1] - prices[i]);
  18.                 }
  19.                 // Case 2: unhold
  20.                 dp[i][1] = max(dp[i-1][1], dp[i-1][0] + prices[i]);
  21.         }
  22.         return dp[prices.size()-1][1];
  23. }

  24. void test() {
  25.         vector<int> prices;
  26.         prices.push_back(1);
  27.         prices.push_back(2);
  28.         cout << stockDP(prices) << endl; // 1
  29.         prices.push_back(3);
  30.         prices.push_back(4);
  31.         cout << stockDP(prices) << endl; // 3

  32.         vector<int> prices2;
  33.         prices2.push_back(1);
  34.         prices2.push_back(3);
  35.         prices2.push_back(1);
  36.         prices2.push_back(4);
  37.         cout << stockDP(prices2) << endl; // 3

  38.         vector<int> prices3;
  39.         prices3.push_back(4);
  40.         prices3.push_back(3);
  41.         prices3.push_back(2);
  42.         prices3.push_back(1);
  43.         cout << stockDP(prices3) << endl; // 0
  44. }
复制代码

评分

参与人数 1大米 +3 收起 理由
hulahu + 3 回答的很好!

查看全部评分

回复

使用道具 举报

🔗
maxnima 2015-8-26 01:24:53 | 只看该作者
全局:
恭喜楼主,word abbreviation 这题怎么破啊。
回复

使用道具 举报

🔗
hanchen999 2015-8-26 01:38:43 | 只看该作者
全局:
感觉怎么排列好像都有重复
回复

使用道具 举报

🔗
 楼主| adamru 2015-8-26 01:56:56 | 只看该作者
全局:
您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
回复

使用道具 举报

🔗
maxnima 2015-8-26 02:04:29 | 只看该作者
全局:
adamru 发表于 2015-8-26 01:56
我是这么做的:
如果单词长度为N, 可以分别选0,1,2 。。。N个字母进行缩写。对于选K个字母,就是N个中 ...

膜拜,大牛,我回去好好想想。
回复

使用道具 举报

🔗
jiebour 2015-8-26 02:14:00 | 只看该作者
全局:
楼主,第一题不考虑set多query少或者set少query多的话,很好做。要是考虑的话怎么破。。。。。求
回复

使用道具 举报

🔗
Walcottking 2015-8-26 02:16:49 | 只看该作者
全局:
adamru 发表于 2015-8-26 01:56
我是这么做的:
如果单词长度为N, 可以分别选0,1,2 。。。N个字母进行缩写。对于选K个字母,就是N个中 ...

大神,如果直接从N中取K个的话,怎么保证取出来的是连续的呢?
回复

使用道具 举报

🔗
 楼主| adamru 2015-8-26 02:37:53 | 只看该作者
全局:
maxnima 发表于 2015-8-26 02:04
膜拜,大牛,我回去好好想想。

楼主很水的。。。
回复

使用道具 举报

🔗
hj867955629 2015-8-26 02:45:45 | 只看该作者
全局:
maxnima 发表于 2015-8-26 02:04
膜拜,大牛,我回去好好想想。

也可以这么想,每个字母可能被缩写了,也可能没被缩写,所以最后是2^n个。
回复

使用道具 举报

🔗
 楼主| adamru 2015-8-26 02:45:57 | 只看该作者
全局:
您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
回复

使用道具 举报

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

本版积分规则

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