gpt4 book ai didi

algorithm - 排序序列中的三角形数

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:20:36 25 4
gpt4 key购买 nike

给定 n 的严格递增序列正整数 A(1) < A(2) < ... < A(n) .我们需要找到边长为 3 的三角形的数量这个序列的不同元素。

n <= 6000 ,检查每个可能的组合还不够快。有没有更好的算法?感谢您的帮助。

我的伪代码:

for i from 0 till n - 2
for j from i+1 till n-1
for k from j+1 till n
if A[i] + A[j] > A[k] then count += 1
else break

最佳答案

  1. 您可以排除第三个循环并使用二进制搜索查找最大 k 值。复杂度为 O(N^2*Log(N)
  2. 您可以达到更好的时间 - O(N^2) - 只需考虑如何使用单调性属性即可。

关于algorithm - 排序序列中的三角形数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33421843/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com