一亩三分地论坛

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

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

亚麻 OA2 K Closest Points 疑问 求解答

[复制链接] |试试Instant~ |关注本帖
xuanyuanyi12 发表于 2016-11-25 11:44:13 | 显示全部楼层 |阅读模式

2016(10-12月) 码农类 硕士 全职@Amazon - 内推 - 在线笔试 |Passfresh grad应届毕业生

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

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

x
亲爱的童鞋们,我在翻看K Closest Points的相关面经的时候又产生了一些疑问,请走过路过做过的同学们帮忙解答呀,感激不尽哒~~~1. 这道题的输入和输出是List<Point>还是Point[]?输出的时候里面的点的排序有要求么?从小到大或者从大到小?
2. 如果输入的K小于0或者大于List的size应该返回原List么?那K等于0要返回空List还是原List? 我觉得K等于0应该返回空的,这样比较和逻辑。List为null应该返回原List对吧。
3. 我看见好多人说PriorityQueue不能用,为啥?还有说建comparator要加个size要不会出错是么?另外我还看见有的同学讲PriorityQueue过不了所有test因为距离一样的要在一堆,但是每次从堆前面取不就会形成在输出里距离一样的在一起嘛~~~一头雾水~~~
期待做过的同学帮忙解答呀~~~
下周就要OA2了~~~
感激不尽哒~~~ 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
. 1point3acres.com/bbs

本帖被以下淘专辑推荐:

DanielWang1204 发表于 2016-11-25 13:15:20 | 显示全部楼层
不明白priorityqueue为啥不行
回复 支持 反对

使用道具 举报

 楼主| xuanyuanyi12 发表于 2016-11-25 13:32:31 | 显示全部楼层
DanielWang1204 发表于 2016-11-25 13:15
不明白priorityqueue为啥不行

对呀~~~
sort数组不够快~~~
divide and conquer 我觉着容易写错而且不见得受待见~~~
所以应该还是pq靠谱呀!
众说纷纭~~~等解答~~~
回复 支持 反对

使用道具 举报

xietao0221 发表于 2016-11-25 13:49:33 | 显示全部楼层
我是用PQ的,结果一个case过不去,最后也是拿了offer的,所以不用纠结于case到底过了几个
回复 支持 反对

使用道具 举报

 楼主| xuanyuanyi12 发表于 2016-11-25 13:58:29 | 显示全部楼层
xietao0221 发表于 2016-11-25 13:49
我是用PQ的,结果一个case过不去,最后也是拿了offer的,所以不用纠结于case到底过了几个

那看啥~~~
求指点~~~
回复 支持 反对

使用道具 举报

香草可乐 发表于 2016-11-25 14:00:37 | 显示全部楼层
PQ可以全过啊,只是有一个edge case需要注意下
if (k <= 0) return new Point[0]
回复 支持 反对

使用道具 举报

xietao0221 发表于 2016-11-25 14:04:20 | 显示全部楼层
香草可乐 发表于 2016-11-25 14:00.1point3acres缃
PQ可以全过啊,只是有一个edge case需要注意下
if (k

所以我觉得亚麻的题目没有说清,它也没说这些非法输入我们应该返回什么,太伤了
回复 支持 反对

使用道具 举报

 楼主| xuanyuanyi12 发表于 2016-11-25 14:11:37 | 显示全部楼层
香草可乐 发表于 2016-11-25 14:00
PQ可以全过啊,只是有一个edge case需要注意下
if (k

我看见有人说k<0和>size要返回原list~~~诶~~~我凌乱了.1point3acres缃
其实从逻辑上讲数组为null或长度为零或k<=0或k>size应该都要返回空数组~~~因为没有答案么~~~. From 1point 3acres bbs
但是有的同学讲要返回原数组~~~我已在风中凌乱,难道每个人的case还不一样
回复 支持 反对

使用道具 举报

 楼主| xuanyuanyi12 发表于 2016-11-25 14:12:48 | 显示全部楼层
xietao0221 发表于 2016-11-25 14:04. visit 1point3acres.com for more.
所以我觉得亚麻的题目没有说清,它也没说这些非法输入我们应该返回什么,太伤了

确实~而且有的还跟正常逻辑相左,但是。。。没办法
回复 支持 反对

使用道具 举报

香草可乐 发表于 2016-11-25 14:15:09 | 显示全部楼层
k <= 0 return new Point[0]是一个test case. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
k > size算是返回原数组,但是里面的points要sort一边,距离最近的点是第一个,第二近的是第二个and so on
回复 支持 反对

使用道具 举报

 楼主| xuanyuanyi12 发表于 2016-11-25 14:19:26 | 显示全部楼层
香草可乐 发表于 2016-11-25 14:15
k  size算是返回原数组,但是里面的points要sort一边,距离最近的点是第一个,第二近的是第二个and so on

这样啊~~~~
太感谢了~~~
那如果数组是null或者空应该也是返回new Point[0]对吧?
. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
太感谢你了~~~
回复 支持 反对

使用道具 举报

香草可乐 发表于 2016-11-25 14:23:05 | 显示全部楼层
我记得如果是null或者length == 0,应该返回的是原数组,if(points == null || points.length == 0)   return points
但如果 k <= 0,返回new Points[0],这个绝对是其中一个corner case
回复 支持 反对

使用道具 举报

 楼主| xuanyuanyi12 发表于 2016-11-25 14:45:44 | 显示全部楼层
香草可乐 发表于 2016-11-25 14:23
我记得如果是null或者length == 0,应该返回的是原数组,if(points == null || points.length == 0)   retu ...
. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
很有道理~~~
谢谢啦~
回复 支持 反对

使用道具 举报

蓝色蝶殇 发表于 6 天前 | 显示全部楼层
想问一下LZ用了PQ么?PQ的排序并不是稳定排序,如果有三个等距离的点ABC,输出的顺序可能是BCA···,这个情况怎么破
回复 支持 反对

使用道具 举报

 楼主| xuanyuanyi12 发表于 6 天前 | 显示全部楼层
蓝色蝶殇 发表于 2016-12-2 15:08
想问一下LZ用了PQ么?PQ的排序并不是稳定排序,如果有三个等距离的点ABC,输出的顺序可能是BCA···,这个 ...
. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
他本来就没要求必须等距离的按输入排序吧~反正我用着挺好
回复 支持 反对

使用道具 举报

蓝色蝶殇 发表于 6 天前 | 显示全部楼层
xuanyuanyi12 发表于 2016-12-2 15:25
他本来就没要求必须等距离的按输入排序吧~反正我用着挺好

我是看有些人的面经这么说,到时候看看吧,test case全过了我就不管了,过不了我就套一层,把index加进去比较
回复 支持 反对

使用道具 举报

 楼主| xuanyuanyi12 发表于 6 天前 | 显示全部楼层
蓝色蝶殇 发表于 2016-12-2 15:37
我是看有些人的面经这么说,到时候看看吧,test case全过了我就不管了,过不了我就套一层,把index加进去 ...

刚才也有一个帖子证明了没问题,你放心吧~
回复 支持 反对

使用道具 举报

lucyjuicy 发表于 5 天前 | 显示全部楼层
所以说如果k>points.length,返回points还需要排序吗?
回复 支持 反对

使用道具 举报

Pigg91 发表于 5 天前 | 显示全部楼层
pq可过,k小于0返回new Point[0 ]
回复 支持 反对

使用道具 举报

本版积分规则

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

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

关闭

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

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

custom counter

GMT+8, 2016-12-8 04:10

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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