一亩三分地论坛

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

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

Google 电面加面

[复制链接] |试试Instant~ |关注本帖
wilsonli 发表于 2016-12-1 03:09:08 | 显示全部楼层 |阅读模式

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

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

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

x
第一次电面没有发挥好,给hr小妹发邮件请求加面,爽快答应。今天刚完事,生死未卜。
题目很简单,考set,unordered_set。但是lz有一个问题没有回答出来,unorder_set的overhead是多大。求大神解答。

第二题是给一个sorted array,和一个target number,问有多少pair of numbers 的和小于等于target。我写了一个O(n^2),又用set写了一个O(nlgn)。

小哥态度很好,在youtube工作,问了两个问题就结束了。感觉过的可能性不大,发一波面经攒人品。

.鐣欏璁哄潧-涓浜-涓夊垎鍦

评分

1

查看全部评分

本帖被以下淘专辑推荐:

catinclay 发表于 2016-12-1 03:12:04 | 显示全部楼层
第一问的overhead是指时间复杂度吗?

第二问应该是用双指针可以O(n)解
回复 支持 反对

使用道具 举报

 楼主| wilsonli 发表于 2016-12-1 03:13:53 | 显示全部楼层
catinclay 发表于 2016-12-1 03:12
第一问的overhead是指时间复杂度吗?. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷

第二问应该是用双指针可以O(n)解

overhead指的是memory overhaed
. 鍥磋鎴戜滑@1point 3 acres
对啊 双指针啊,傻逼了。
回复 支持 反对

使用道具 举报

catinclay 发表于 2016-12-1 03:19:56 | 显示全部楼层
wilsonli 发表于 2016-12-1 03:13
overhead指的是memory overhaed

对啊 双指针啊,傻逼了。

memory的overhead的话...
先假设是hashset
首先要先看开了多少buckets给这个set使用 然后假设collision是用linkedlist的方式处理 最大的情况会是O(m+n), m = buckets size, n = number of elements
不确定对不对

BTW. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
这样的表现是一面的话我认为会加面 如果本来就是加面了...可能就要看运气了. more info on 1point3acres.com
.1point3acres缃
补充内容 (2016-12-1 03:21):
m = number of buckets 这样说应该比较对
回复 支持 反对

使用道具 举报

leixiang5 发表于 2016-12-1 03:45:25 | 显示全部楼层
overhead???unorder_set跟什么比啊? order_set吗?
回复 支持 反对

使用道具 举报

 楼主| wilsonli 发表于 2016-12-1 03:50:05 | 显示全部楼层
catinclay 发表于 2016-12-1 03:19
memory的overhead的话...
先假设是hashset
首先要先看开了多少buckets给这个set使用 然后假设collision ...

你的回答我服。
回复 支持 反对

使用道具 举报

 楼主| wilsonli 发表于 2016-12-1 03:50:32 | 显示全部楼层
leixiang5 发表于 2016-12-1 03:45
overhead???unorder_set跟什么比啊? order_set吗?
. 鍥磋鎴戜滑@1point 3 acres
不是跟什么比,就是本身在存object的时候的overhead
回复 支持 反对

使用道具 举报

leixiang5 发表于 2016-12-1 03:59:48 | 显示全部楼层
wilsonli 发表于 2016-12-1 03:50
不是跟什么比,就是本身在存object的时候的overhead

- -...只会跟什么比才存在overhead吧...比如linkedlist在跟array比较下的overhead是pointers..
anyway...也许overhead是pointer???
回复 支持 反对

使用道具 举报

chestnut9919 发表于 2016-12-1 04:23:37 | 显示全部楼层
catinclay 发表于 2016-12-1 03:12
第一问的overhead是指时间复杂度吗?

第二问应该是用双指针可以O(n)解

双指针怎么O(N)? 不是也要N^2吗
回复 支持 反对

使用道具 举报

catinclay 发表于 2016-12-1 04:28:24 | 显示全部楼层
chestnut9919 发表于 2016-12-1 04:23. 1point 3acres 璁哄潧
双指针怎么O(N)? 不是也要N^2吗

假定指针l跟r
sum = nums[l] + nums[r]. visit 1point3acres.com for more.
判断sum跟target的关系

要是sum <= target, 代表从l+1到r的数都能跟l的数成为一个小于sum的pair
所以res直接+=r-l 然后l往右移动一格

若是sum > target, 就是r往左一格

每个数最多被l或是r给access一次 所以时间复杂度是O(n)

补充内容 (2016-12-1 04:29):
一直作到l == r
回复 支持 反对

使用道具 举报

chestnut9919 发表于 2016-12-1 04:31:11 | 显示全部楼层
catinclay 发表于 2016-12-1 04:28. more info on 1point3acres.com
假定指针l跟r
sum = nums[l] + nums[r]
判断sum跟target的关系

如果sum<target,res+=r-l之后,下一次l还要往右移动一个,在这一层r还要从最后开始算,所以还是N^2啊

补充内容 (2016-12-1 04:32):
这个有点像LC259,3 sum smaller
回复 支持 反对

使用道具 举报

catinclay 发表于 2016-12-1 04:41:42 | 显示全部楼层
.鐣欏璁哄潧-涓浜-涓夊垎鍦
关键就是r不用从头. Waral 鍗氬鏈夋洿澶氭枃绔,

补充内容 (2016-12-1 04:42):
應該說l+1之後 r不用從最後面重新算

你用個test case跑跑看就知道了
回复 支持 反对

使用道具 举报

chestnut9919 发表于 2016-12-1 04:42:20 | 显示全部楼层
catinclay 发表于 2016-12-1 04:28
假定指针l跟r
sum = nums[l] + nums[r]
判断sum跟target的关系

啊我明白了,r不用从最后走了,一直往左移动就行了,确实是O(N)
回复 支持 反对

使用道具 举报

MulinZz 发表于 2016-12-1 04:57:09 | 显示全部楼层
感觉题不难啊,为什么过的可能性不大啊
回复 支持 反对

使用道具 举报

本版积分规则

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

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

关闭

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

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

custom counter

GMT+8, 2016-12-11 15:57

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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