样板戏版beat it# Joke - 肚皮舞运动w*x2011-08-15 07:081 楼好像是给一个星系, 知道各个星球的坐标, 能较快的求出距离任何一个星球指定距离内的所有星球. 较笨的方法是O(n^2)的, 就是算出所有星球的距离
M*P2011-08-15 07:084 楼火星天气如何?【在 m*******8 的大作中提到】: http://www.tudou.com/programs/view/Ru4F8boSJ1c/: 谁教教我怎么贴视频?
e*l2011-08-15 07:0814 楼今天面试的时候还说到这个问题了worst case是O(nk)的k是最大堆的size比较好的解法Google map是分割区域,把整个universe分成N多小区域,然后用个maxRadius去套
A*u2011-08-15 07:0815 楼搞不明白为啥需要堆呢【在 e*********l 的大作中提到】: 今天面试的时候还说到这个问题了: worst case是O(nk)的k是最大堆的size: 比较好的解法: Google map是分割区域,把整个universe分成N多小区域,然后用个maxRadius去套
l*i2011-08-15 07:0816 楼voronoi diagram, O(nlogn) but it is too difficult for interview questionsunless you work on computational geometry.
m*q2011-08-15 07:0817 楼如果是求最近的k个的话,先把每个点和其他点的距离按远近排序,空间O(n^2),查找最近的k个复杂度O(k),如果只查第k个的话O(lgn)以后很快能得到解答的方法???【在 w****x 的大作中提到】: 搞错了, 是给定一个星球, 求距离它最近的k个, 又没有什么预处理可以处理一次, 以: 后很快能得到解答的方法???
n*w2011-08-15 07:0818 楼这个适合面试的答案。每个点上计算出所有距离排序。Voronoi diagram,KD tree,Range tree可以在follow up中提到。半个小时白板coding实现几乎完全不可能。【在 m**q 的大作中提到】: 如果是求最近的k个的话,先把每个点和其他点的距离按远近排序,: 空间O(n^2),查找最近的k个复杂度O(k),如果只查第k个的话O(lgn): : 以后很快能得到解答的方法???
s*n2011-08-15 07:0819 楼应该是用size为K的MaxHeap,Head是最小k个里最大的一个。【在 w****x 的大作中提到】: 搞错了, 是给定一个星球, 求距离它最近的k个, 又没有什么预处理可以处理一次, 以: 后很快能得到解答的方法???
A*c2011-08-15 07:0820 楼这是经典的Nearest neighbor search的变体。1:建kdtree2:走到leaf node,纪录没有走的分支节点3:trace back。【在 w****x 的大作中提到】: 好像是给一个星系, 知道各个星球的坐标, 能较快的求出距离任何一个星球指定距离内: 的所有星球. 较笨的方法是O(n^2)的, 就是算出所有星球的距离