Given an array, can I find in O(n) the longest range, whose endpoints are the greatest values in the range?

Для данного массива целых чисел найдите максимальное расстояние между двумя точками (i и j), которые имеют более высокие значения, чем любой элемент между ними.

Пример:

values: 0 10  8  9  6  7  4 10  0
index : 0  1  2  3  4  5  6  7  8 

для значения выше решения: i = 1, j = 7, но

  • , если значение индекса 7 равно 9, а не 10, решение будет i = 3, j = 7
  • , если значение индекса 7 равно 7 вместо 10 решение: i = 5, j = 7

Я не вижу решения в O (n) ... кто-нибудь?

33
задан templatetypedef 9 May 2013 в 15:47
поделиться