在小于 O(n^2) 的情况下最大化给定方程
Maximise the given equation in less than O(n^2)
给定一个数组如何找到
的最大值
(ar[j]-ar[i]-1)*(min(ar[i],ar[j]))
时间 O(n) 或 O(nlogn)
如果输入始终为非负数,那么除了 ar
的最大元素用作 ar[j]
之外没有任何意义;任何不使用 ar[j]
的产品都可以通过使用 ar[j]
来增加。因此,我们可以在O(n)
时间内找到最大值,并在O(n)
时间内与ar[i]
的所有可能值进行尝试以解决问题。
如果不要求输入非负,则最大乘积必须使用最大值ar[j]
或最小值ar[j]
。同样,我们可以找到最大值和最小值,并针对所有可能的 ar[i]
值进行尝试。
给定一个数组如何找到
的最大值 (ar[j]-ar[i]-1)*(min(ar[i],ar[j]))
时间 O(n) 或 O(nlogn)
如果输入始终为非负数,那么除了 ar
的最大元素用作 ar[j]
之外没有任何意义;任何不使用 ar[j]
的产品都可以通过使用 ar[j]
来增加。因此,我们可以在O(n)
时间内找到最大值,并在O(n)
时间内与ar[i]
的所有可能值进行尝试以解决问题。
如果不要求输入非负,则最大乘积必须使用最大值ar[j]
或最小值ar[j]
。同样,我们可以找到最大值和最小值,并针对所有可能的 ar[i]
值进行尝试。