Redian新闻
>
最近的一对白点和黑点怎么做?
avatar
最近的一对白点和黑点怎么做?# JobHunting - 待字闺中
c*p
1
平面上一堆白点一堆黑点,找最近的白点和黑点。这个题怎么做?
我说说我的想法:
用2个arraylist分别记录白点黑点坐标。每个白点找它最近的黑点。然后把这些最近的
距离比较。
这个复杂度是O(n^2).
求更好的方法~
avatar
A*i
2
隐约觉得可以用DP来做
和那个三角形问题差不多
avatar
c*p
3
哪个三角形?
求三角形问题链接。

【在 A*****i 的大作中提到】
: 隐约觉得可以用DP来做
: 和那个三角形问题差不多

avatar
k*t
4
感觉想leetcode中Pascal's Triangle那道题啊

【在 A*****i 的大作中提到】
: 隐约觉得可以用DP来做
: 和那个三角形问题差不多

avatar
c*p
5
啊??请问这个是怎么联系起来的。。。。。

【在 k*******t 的大作中提到】
: 感觉想leetcode中Pascal's Triangle那道题啊
avatar
k*t
6
那个也是三角形,而且也用dp啊。不知道对不对,求教牛人出来数清楚点

【在 c********p 的大作中提到】
: 啊??请问这个是怎么联系起来的。。。。。
avatar
c*p
7
我问的这个问题,是怎么和三角形联系起来的呢?

【在 k*******t 的大作中提到】
: 那个也是三角形,而且也用dp啊。不知道对不对,求教牛人出来数清楚点
avatar
i*t
8
对每个白点 在黑点钟查找最近的 用kd tree 之类的 binary tree
建树 大概 nlogn ?
查找 logn
所以 总的复杂度是 假设 白点个数也是 n
nlogn + logn n = 2nlogn = nlogn
不知道对不对
avatar
c*p
9
什么是kd tree?

【在 i******t 的大作中提到】
: 对每个白点 在黑点钟查找最近的 用kd tree 之类的 binary tree
: 建树 大概 nlogn ?
: 查找 logn
: 所以 总的复杂度是 假设 白点个数也是 n
: nlogn + logn n = 2nlogn = nlogn
: 不知道对不对

avatar
i*t
10
就是类似于 bst 但是 多维的
感觉是比较典型的 nearest neighbor search 问题 一般都是 kdtree

【在 c********p 的大作中提到】
: 什么是kd tree?
avatar
c*p
11
哦哦,,,一会看看别人怎么说这个题。。
我还是非常confused

【在 i******t 的大作中提到】
: 就是类似于 bst 但是 多维的
: 感觉是比较典型的 nearest neighbor search 问题 一般都是 kdtree

avatar
x*8
12
分而治之?看看这样如何:
1. sort the points based on some axis, to divide them rough to two parts
2. the solution is 1 of the following 4:
a) on the left -> recursive call
b) on the right -> recursive call
c) one black on left, one white on right
d) one white on left, one black on right
3. search of c and d can be constrained by the upper limit we get in a) and
b)

【在 c********p 的大作中提到】
: 哦哦,,,一会看看别人怎么说这个题。。
: 我还是非常confused

avatar
e*8
13
这个是bichromatic closest pair问题(是computational geometry里很经典的问题)
。觉得面试问不到这种问题吧,实在太偏了,不是那种人人都应该知道的东西。。。。
当然除非你的方向本来就是computational geometry (或者面试官的背景是
computational geometry -_-||)
几个可以考虑的解法:http://stackoverflow.com/questions/8203576/closest-distance-between-two-pointsdisjoint-set
上面有人说的kd tree,就是种nearest neighbor data structure
avatar
l*i
14
what if you have all white on left and all black on right, then a) and b)
tell you nothing about min dist between a black and a white.

and

【在 x****8 的大作中提到】
: 分而治之?看看这样如何:
: 1. sort the points based on some axis, to divide them rough to two parts
: 2. the solution is 1 of the following 4:
: a) on the left -> recursive call
: b) on the right -> recursive call
: c) one black on left, one white on right
: d) one white on left, one black on right
: 3. search of c and d can be constrained by the upper limit we get in a) and
: b)

avatar
x*y
15
Is there any differene from finding 2 closest points in 2-D space, which is
a classic "divide and conquer" problem?

【在 c********p 的大作中提到】
: 平面上一堆白点一堆黑点,找最近的白点和黑点。这个题怎么做?
: 我说说我的想法:
: 用2个arraylist分别记录白点黑点坐标。每个白点找它最近的黑点。然后把这些最近的
: 距离比较。
: 这个复杂度是O(n^2).
: 求更好的方法~

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。