【发布时间】:2019-08-20 14:55:51
【问题描述】:
问题很简单:n 点在欧几里得平面上由它们的坐标给出。对于每个点,您应该使用欧几里得距离找到其自身与任何其他点之间的最小距离。这个最小距离称为该点的半径。对于每一点,我们应该返回两件事:
半径(
r)。欧几里得距离小于或等于
2*r的点数(不包括自身)。
输入限制:
1 <= number of coordinates <= 30000
0 <= x,y <= 10000
好吧,我已经在o(n^2) 中完成了这项工作。谁有更好的解决方案??
例子:
1. n=3
(0,0)
(0,0)
(3,4)
output-
(0.00 1)
(0.00 1)
(5.00 2)
2. n=5
(5,3)
(7,8)
(0,9)
(3,1)
(4,4)
output-
(1.41 2)
(5.00 4)
(6.40 4)
(2.83 2)
(1.41 1)
【问题讨论】:
-
每个解决方案都必须计算每对点之间的距离吗?有几对?
-
@DavidBrowne-Microsoft 是的,每个解决方案都必须计算每对点之间的距离,对于每种情况,我们都会得到 n 个点。
-
请添加语言标签。
-
好吧,既然要计算 n(n-1)/2 个距离,你就有答案了。
标签: math coordinates