给定数组如何找到
的最大值 (ar[j]-ar[i]-1)*(min(ar[i],ar[j]))
及时O(n)或O(nlogn)
答案 0 :(得分:1)
如果输入始终是非负的,那么使用除ar
的最大元素ar[j]
之外的任何内容都没有意义;使用ar[j]
可以增加任何不使用ar[j]
的产品。因此,我们可以在O(n)
时间内找到最大值,并在ar[i]
时间内针对O(n)
的所有可能值进行尝试以解决问题。
如果输入不是非负的,则最大产品必须使用最大ar[j]
或最小ar[j]
。同样,我们可以找到最大值和最小值,并针对所有可能的ar[i]
值进行尝试。