推荐:数据科学课程和书籍清单以及培训讲座


一亩三分地论坛

 找回密码
 获取更多干活,快来注册

一亩三分地官方iOS手机应用下载
查看: 969|回复: 15
收起左侧

nest 电面

[复制链接] |试试Instant~ |关注本帖
documentary1 发表于 2017-7-12 05:09:28 | 显示全部楼层 |阅读模式

2017(7-9月) 码农类 硕士 全职@Google - 内推 - 技术电面 |Other在职跳槽

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

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

x
Write a function.
Input: int[] that is sorted
Output: A int value from the int[]. Where the value occurs in the array at least (length of array / 4) times
Example: [1, 2, 3, 4, 1, 6, 7, 2]. Length of array is 8. 8/4 = 2. Return item that occurs at least 2 times. Return value 1 or 2.

if sorted
要求不断优化,o(n) space o(n) time -> o(1) space o(n) time -> o(1) space o(logn) time


.1point3acres缃

评分

1

查看全部评分

2011051305 发表于 2017-7-14 23:57:10 | 显示全部楼层
rgc588 发表于 2017-7-14 11:31
舍弃的逻辑是什么? 还是没想出来

我想是二分的话 一定有一半不合要求的嘛  题主的题意是sorted array的 所以一次二分就是O(logn)  像merge sort这种最终要对所有array element做处理的 才是O(nlogn).鏈枃鍘熷垱鑷1point3acres璁哄潧

如果说错了求批判~~
回复 支持 1 反对 0

使用道具 举报

Timothy1119 发表于 2017-7-12 05:34:50 | 显示全部楼层
非常感谢分享!能具体说一下优化的过程吗?是针对sorted array进行优化吗?最后怎么做到logn的时间的?
回复 支持 反对

使用道具 举报

2011051305 发表于 2017-7-12 06:06:21 | 显示全部楼层
是肯定给定了sorted了吗? o(n) space o(n) time 用Hashmap扫一遍计数 ->  o(1) space o(n) time 用一个int记录当前指针 然后双指针扫一遍 -> 用二分查找 mid的左边右边分别查看 因为只要返回value就好无所谓index ? 这个思路是对的么?
回复 支持 反对

使用道具 举报

星焦不变 发表于 2017-7-12 06:42:28 | 显示全部楼层
请问楼主申请的是什么岗位啊?
回复 支持 反对

使用道具 举报

rainbow767 发表于 2017-7-12 08:59:05 | 显示全部楼层
2011051305 发表于 2017-7-11 14:06
是肯定给定了sorted了吗? o(n) space o(n) time 用Hashmap扫一遍计数 ->  o(1) space o(n) time 用一个int ...

用二分查找 mid的左边右边分别查看 因为只要返回value就好无所谓index?这个我不太理解。能讲讲是什么意思吗?为何要看mid啊?
回复 支持 反对

使用道具 举报

say543 发表于 2017-7-12 13:35:46 | 显示全部楼层
楼主能问下logn 怎么解吗 感觉二分查找 也是要o(nlogn)?
回复 支持 反对

使用道具 举报

FightForTomo 发表于 2017-7-12 13:54:14 | 显示全部楼层
say543 发表于 2017-7-12 13:35
楼主能问下logn 怎么解吗 感觉二分查找 也是要o(nlogn)?
. Waral 鍗氬鏈夋洿澶氭枃绔,
二分查找要是都nlgn了,直接遍历不就行了。
回复 支持 反对

使用道具 举报

FightForTomo 发表于 2017-7-12 13:57:43 | 显示全部楼层
不是说好input 是排序的了么。
例子咋又乱序了?-google 1point3acres

我觉得就直接遍历,然后maintain 一个counter.
返回最常出现的数字就可以了。
时间O(n), 空间O(1)。
回复 支持 反对

使用道具 举报

rgc588 发表于 2017-7-14 02:37:11 | 显示全部楼层
2011051305 发表于 2017-7-12 06:06
是肯定给定了sorted了吗? o(n) space o(n) time 用Hashmap扫一遍计数 ->  o(1) space o(n) time 用一个int ...
.1point3acres缃
如果两边都找那不是logN 只搜索一边才是logN
回复 支持 反对

使用道具 举报

2011051305 发表于 2017-7-14 03:50:53 | 显示全部楼层
rgc588 发表于 2017-7-14 02:37
如果两边都找那不是logN 只搜索一边才是logN

恩我是想说  如果二分+左右探查 其实可能会退化成O(n)的 所以应该是一次二分才能做到O(logn)  注意上面同学说的二分查找也是要O(nlogn) 其实是不准确的 因为这里是sorted 所以每次都一定能舍弃一半 。   (说错了大家请指正!~)

回复 支持 反对

使用道具 举报

rgc588 发表于 2017-7-14 11:31:05 | 显示全部楼层
2011051305 发表于 2017-7-14 03:50. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
恩我是想说  如果二分+左右探查 其实可能会退化成O(n)的 所以应该是一次二分才能做到O(logn)  注意上面同 ...

舍弃的逻辑是什么? 还是没想出来
回复 支持 反对

使用道具 举报

xjob2017spring 发表于 2017-7-14 13:06:11 | 显示全部楼层
路过问一下nest和g招人是互相独立的吗
回复 支持 反对

使用道具 举报

sjtuenergy 发表于 2017-7-17 11:36:07 | 显示全部楼层
楼主收到onsite通知了吗? thanks
回复 支持 反对

使用道具 举报

f1371342385 发表于 2017-7-23 07:04:36 | 显示全部楼层
2011051305 发表于 2017-7-14 23:57
我想是二分的话 一定有一半不合要求的嘛  题主的题意是sorted array的 所以一次二分就是O(logn)  像merge ...

求问这个舍弃的逻辑是什么?没太想明白
回复 支持 反对

使用道具 举报

mchzh 发表于 2017-7-26 13:30:33 | 显示全部楼层
除了做题还问别的问题吗?楼主得到onsite了吗?
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

custom counter

GMT+8, 2017-8-23 07:00

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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