给定n点的直角三角形的数量

时间:2018-07-25 09:29:33

标签: algorithm

给定xy平面中的 n 个点,我需要找到可以使用这些点作为顶点形成的直角三角形的数量。我确实提出了O(n 3 )解决方案,您一次获取3个顶点,并检查它们是否形成直角三角形。我想知道解决此问题的最佳方法。

1 个答案:

答案 0 :(得分:6)

O(n ^ 2)解决方案可能是这样的:

  • 一个接一个地迭代每个点,
  • 在处理每个点时,计算该点和列表中其他点形成的单位矢量;然后将它们存储在HashMap中。对于每个矢量,计算与其形成直角的单位矢量,然后在HashMap中查找。