一亩三分地论坛

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

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

F脸家intern电面

[复制链接] |试试Instant~ |关注本帖
silence_shadow 发表于 2016-11-15 04:10:27 | 显示全部楼层 |阅读模式

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

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

x
1. leetcode 283. Move Zeroes
2. 给很多坐标 比如(0,1)(3,9)(2,3)返回k个离原点(0,0)最近的 -google 1point3acres
比如这题k=2 就返回(0,1) (2,3)。我说都算距离 然后sort或者priority queue O(nlogn),面试官说太慢了 而且耗space

求问第二题更优解?谢谢~


补充内容 (2016-11-16 00:10):
还有一个问题,在第二问的时候,我写的输入是List<List<Integer>>,面试官说这个太慢了,求问应该用啥?谢谢~~

评分

3

查看全部评分

zpinthehouse 发表于 2016-11-15 04:14:56 | 显示全部楼层
第二题可以quick select?
回复 支持 反对

使用道具 举报

lalasparrow 发表于 2016-11-15 04:28:10 | 显示全部楼层
关注~~~求最优~~~
回复 支持 反对

使用道具 举报

loserloser 发表于 2016-11-15 04:31:09 | 显示全部楼层
求问楼主是校招投的实习简历吗?
回复 支持 反对

使用道具 举报

wtcupup 发表于 2016-11-15 04:32:43 | 显示全部楼层
写完heap的code后,面试官说换一种更快的方法?还是你写code前面试官就说这个太慢了?
回复 支持 反对

使用道具 举报

 楼主| silence_shadow 发表于 2016-11-15 04:38:50 | 显示全部楼层
wtcupup 发表于 2016-11-15 04:32
写完heap的code后,面试官说换一种更快的方法?还是你写code前面试官就说这个太慢了?

写之前就说了 但我没想出来
回复 支持 反对

使用道具 举报

 楼主| silence_shadow 发表于 2016-11-15 04:39:10 | 显示全部楼层
loserloser 发表于 2016-11-15 04:31
求问楼主是校招投的实习简历吗?

内推 字数 字数 字数 字数 字数 字数 字数 字数 字数 字数
回复 支持 反对

使用道具 举报

leixiang5 发表于 2016-11-15 05:25:26 | 显示全部楼层
楼主的面试官叫什么啊?
回复 支持 反对

使用道具 举报

 楼主| silence_shadow 发表于 2016-11-15 10:44:26 | 显示全部楼层
leixiang5 发表于 2016-11-15 05:25. 1point3acres.com/bbs
楼主的面试官叫什么啊?

私信你了
回复 支持 反对

使用道具 举报

1071152465 发表于 2016-11-15 12:30:26 | 显示全部楼层
问下楼主什么时候投的啊?我到现在还没消息。。。
回复 支持 反对

使用道具 举报

pwwpche 发表于 2016-11-15 12:48:00 | 显示全部楼层
可以用一个大小为k的sliding window边扫边存当前k个离原点最近的点吧,这样如果sliding window里的元素也用最大堆的话复杂度可以到O(nlogk),内存也只用了O(k),每次碰到比当前最大堆顶元素小的值,就pop掉然后push进新的值。因为有很多重复元素所以不能用库函数只能自己实现可重复元素的最大堆了

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

Andrewchentao48 发表于 2016-11-15 14:47:06 | 显示全部楼层
第二题是lc原题吗
回复 支持 反对

使用道具 举报

qiweiren 发表于 2016-11-15 15:15:11 | 显示全部楼层
pwwpche 发表于 2016-11-15 12:48. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
可以用一个大小为k的sliding window边扫边存当前k个离原点最近的点吧,这样如果sliding window里的元素也用 ...

这个跟用堆有什么不一样么?
回复 支持 反对

使用道具 举报

pwwpche 发表于 2016-11-15 15:51:12 | 显示全部楼层
qiweiren 发表于 2016-11-15 15:15
这个跟用堆有什么不一样么?

可以看看leetcode 321,不需要排序,只扫一遍就能记录当前数组里面最小的k个数了

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

 楼主| silence_shadow 发表于 2016-11-15 23:00:59 | 显示全部楼层
pwwpche 发表于 2016-11-15 15:51
可以看看leetcode 321,不需要排序,只扫一遍就能记录当前数组里面最小的k个数了

噢!懂了 大小顶堆问题 完全忘了 啊 好气啊
回复 支持 反对

使用道具 举报

wujingzhishui 发表于 2016-11-15 23:11:28 | 显示全部楼层
QuickSelect , k*O(n) time complexity
回复 支持 反对

使用道具 举报

dingshilun 发表于 2016-11-15 23:22:24 | 显示全部楼层
暂时想到两个,第一个可以quickselect 第K大,然后o(n)遍历一遍选出比这个点更近的所有点。第二个就是k窗口+最大堆。如果k值较大可以考虑第一个方法,k值小可以使用第二个
回复 支持 反对

使用道具 举报

qsort 发表于 2016-11-15 23:22:36 | 显示全部楼层
std::nth_element(first, nth, last),

补充内容 (2016-11-15 23:23):
complexity: build an array of square of distances to 0: O(n);  nth_element: O(n); in total: O(n)
回复 支持 反对

使用道具 举报

 楼主| silence_shadow 发表于 2016-11-16 00:10:24 | 显示全部楼层
pwwpche 发表于 2016-11-15 12:48
可以用一个大小为k的sliding window边扫边存当前k个离原点最近的点吧,这样如果sliding window里的元素也用 ...
. more info on 1point3acres.com
还有一个问题,在第二问的时候,我写的输入是List<List<Integer>>,面试官说这个太慢了,求问应该用啥?谢谢~~
回复 支持 反对

使用道具 举报

pwwpche 发表于 2016-11-16 04:07:03 | 显示全部楼层
silence_shadow 发表于 2016-11-16 00:10
还有一个问题,在第二问的时候,我写的输入是List,面试官说这个太慢了,求问应该用啥?谢谢~~

应该用arraylist或者vector或者直接int[][]。. visit 1point3acres.com for more.

链表在内存里不是连续存储的,相对于连续存储的vector或者arraylist,读取效率低很多(因为非连续存储的话每次读几乎都cache miss,而连续存储的只会少部分cache miss,大多数都是cache hit,读cache的效率相对于读内存快很多)

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

本版积分规则

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

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

关闭

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

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

custom counter

GMT+8, 2016-12-7 23:01

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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