Я не понимаю решения Nikitas. Я вижу не «j», а «n». Отсутствует ли внешняя петля?
Для массива из 10 значений он будет иметь 9 отличий, затем 8, 7, 6, ... к 1; право?
Мое решение будет:
int a[] = {9, 3, 5, 2, 7, 4, 6, 8, 0, 1};
// find starting point (3)
int start = 0;
for (; start < a.length -1 && a[start] > a[start+1];)
++start;
// find upper bound (8)
int upper = start;
for (int j = start + 1; j < a.length; ++j)
{
if (a[j] > a[upper])
upper = j;
}
// find lower bound (2)
int lower = start;
for (int l = lower; l < upper; ++l)
{
if (a[l] < a[lower])
lower = l;
}
System.out.println ("from:\t" + a[lower] + " to: " + a[upper]);
В прозаах: Вы ищете начальную точку, которая в примере не 9, потому что справа нет большего значения, а 3 есть.
Из 3 вы ищите максимум справа, который равен 8.
Между 3 и 8 наименьшее значение ниже 3 равно 2. Там вы получили максимальный интервал.