找到最大平方和的算法

时间:2018-03-01 11:06:59

标签: algorithm sorting

假设我给出了一堆数字对,除了计算所有平方和并将其与当前最大值进行比较之外,还有一个很好的算法可以找到具有最大平方和的对吗?

例如 输入:

[3, 3]
[0, 3]
[4, 0]
[2, 4]

输出: [2, 4](平方和:20)

1 个答案:

答案 0 :(得分:0)

要使用二进制搜索,您需要对列表进行排序。这引发了两个问题(上面提到或暗示过):

  • 你没有精心挑选的藏品
  • 最佳排序为 O(n log n)

两个正方形的总和很简单:数字的两次数据访问,两次乘法和一次加法。在线性CPU上,这可以实现3个廉价(即单周期)操作。在现代AI处理器上,这是一个单周期的点积。

简而言之,线性蛮力方法不仅 O(n),而且快速 O(n)< / strong>即可。拿钱跑。