【发布时间】:2015-08-02 17:51:45
【问题描述】:
给定一个数组如何求最大值
(ar[j]-ar[i]-1)*(min(ar[i],ar[j]))
时间 O(n) 或 O(nlogn)
【问题讨论】:
-
为什么认为这是可能的?还有——是否对数字有任何限制,例如全部为正数?
-
是的,数组的元素都是正数。这是以前的奥林匹克问题,因此可以做到。我忘记了几年前看到的解决方案。
-
好吧——我没有强烈的直觉认为这是不可能的,但我不相信这是可能的。如果数字都是正数,那么
-1是多余的,因为表达式在同一对索引处最大化,这使表达式在删除负 1 的情况下最大化(至少在所有数字不相同的情况下)。我不确定这有什么帮助,但更简单的表达式通常更容易优化。