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

Google加面

全局:

2018(1-3月) 码农类General 硕士 全职@google - 内推 - Onsite  | | Pass | 应届毕业生

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

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

x
一共两轮。

题库一武。
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies

题库三思铃。

评分

参与人数 5大米 +17 收起 理由
zhuyingcau + 5 给你点个赞!
forbread + 3 很有用的信息!
fssq1993 + 3 很有用的信息!
chunninc + 3 很有用的信息!
lakeshore + 3 给你点个赞!

查看全部评分


上一篇:TradeDesk, Verizon, Offerup, AT&T 面经
下一篇:BB电面, 以及关于语言选择的问题。

本帖被以下淘专辑推荐:

推荐
fssq1993 2018-4-25 00:07:36 | 只看该作者
全局:
alanlxl 发表于 2018-4-22 09:29
找到-b/2a之后,左右两边transform之后就是两个有序数组了
两个有序数组找合并后的第k大,是有logk的解 ...

对的对的,我也想到了LC 4 Median of two sorted Array 这里是变成了找第K大的数,思路还是用binary search的方法找两个长度,分别是 K-i 和 i,从而得到这两个小数组merge后最后那number正好就是第K大的数,感觉这题如果面试前没有理解很清楚的话,很难做的啊...

补充内容 (2018-4-25 00:11):
如果真要写的话, corner case感觉很难想得很清楚,不出错的话
回复

使用道具 举报

推荐
tinalxj12 2018-4-23 00:23:25 | 只看该作者
全局:
nums = [-4, -2, 2, 4], a = 1, b = 3, c = 5
对称轴  -b/2a= -1.5,  abs diff 数组相当于:nums = [   2.5, 0.5, 3.5,  5.5   ]  
方案一: Quick Select 找第K大数字的index, 比如K=3, 找到3.5,index = 2 , O(n) 时间复杂度
方案二: Binary search 找K 大数字,相当于 search in roated sorted array O(logn) 时间复杂度
然后 把2 转变成 15 就可以了

注意四种情况
a > 0,
a < 0,
a == 0 && b >= 0,
a == 0 && b < 0
回复

使用道具 举报

🔗
vicky95 2018-4-20 04:21:04 | 只看该作者
全局:
请问加面后多久给的消息啊?recruiter本来说这周一二跟我确定加面时间地点,结果人又消失了
回复

使用道具 举报

🔗
 楼主| Mail 2018-4-20 12:25:19 | 只看该作者
全局:
vicky95 发表于 2018-4-20 04:21
请问加面后多久给的消息啊?recruiter本来说这周一二跟我确定加面时间地点,结果人又消失了

哦这要催催,这看他们心情。。
放心催
回复

使用道具 举报

🔗
alanlxl 2018-4-21 22:11:54 | 只看该作者
全局:
第二题follow up,比O(n)还要快,需要从原数组中间找到nums[i] <= -b/2a, nums[i+1]>-b/2a,从i处将数组分成前后两部分,这两部分转换后就是单调有序的,用二分查找找第k大就可以吧
回复

使用道具 举报

🔗
BlindLockhart 2018-4-22 07:10:27 | 只看该作者
全局:
alanlxl 发表于 2018-4-21 22:11
第二题follow up,比O(n)还要快,需要从原数组中间找到nums -b/2a,从i处将数组分成前后两部分,这两部分转 ...

我想你指的应该是用二分查找找到-b/2a的位置,o(logN), 然后分成两组之后应该是用two pointer类似于merge sort的方法找到第k个吧, 所以是o(logN)+o(k)
当然这里还要考虑a是否大于零的情况,甚至是等于零的一些特殊情况
回复

使用道具 举报

🔗
alanlxl 2018-4-22 09:29:04 | 只看该作者
全局:
BlindLockhart 发表于 2018-4-22 07:10
我想你指的应该是用二分查找找到-b/2a的位置,o(logN), 然后分成两组之后应该是用two pointer类似于merge ...

找到-b/2a之后,左右两边transform之后就是两个有序数组了
两个有序数组找合并后的第k大,是有logk的解法的,LC的第四题《两个有序数组找中位数》就可以用这个方法解决,这里有算法讲解:https://www.jianshu.com/p/9bd57fd52062
回复

使用道具 举报

🔗
alanlxl 2018-4-22 09:30:27 | 只看该作者
全局:
alanlxl 发表于 2018-4-22 09:29
找到-b/2a之后,左右两边transform之后就是两个有序数组了
两个有序数组找合并后的第k大,是有logk的解 ...

只不过这里两边数组的排序方向相反(一个升序一个降序),所以处理下标的时候比两个同为升序或者降序的要麻烦一些。

评分

参与人数 1大米 +3 收起 理由
emmaff + 3

查看全部评分

回复

使用道具 举报

🔗
BlindLockhart 2018-4-22 13:39:07 | 只看该作者
全局:
alanlxl 发表于 2018-4-22 09:30
只不过这里两边数组的排序方向相反(一个升序一个降序),所以处理下标的时候比两个同为升序或者降序的要 ...

了解啦,谢谢回复,我之前没有想到那个算法
算法复杂度是o(logK)还是o(logL), L是分隔之后两个数组之中较短那个的长度
回复

使用道具 举报

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

本版积分规则

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