Рассмотрим массив A[1..n] случайной длины и случайных положительных целых чисел. Мы определяем подмассив A как непрерывный сегмент A. Мы обозначаем подмассив от позиции k до позиции l (включая обе) как A[k..l]. Подмассив A[k..l] является восхождением, если A[j] ≤ A[j + 1] для всех j, где k ≤ j ‹ l. Другими словами, подъем — это неубывающий отрезок A. Вычислите максимальную длину подъема в A. Например, задан массив A =[5; 3; 6; 4; 6; 6; 7; 5], ваш алгоритм должен отображать: Максимальная длина подъема будет 4
, а A[4..7] = [4; 6; 6; 7]
— самый длинный подъем в массиве A. Алгоритм не может использовать какое-либо вспомогательное хранилище, такое как «дополнительные» массивы. чтобы выполнить то, что нужно. Я не уверен, как это решить, это самое близкое, что я нашел для решения.
class practice {
public static void ascentLength(int arr[], int size) {
int length = 0;
int index = 0;
for (int i = 0; i < size - 1; i++) {
index = i;
if (arr[0] <= arr[i + 1]) {
System.out.println(arr[i]);
length++;
}
if (arr[0] >= arr[i + 1]) {
length = 0;
}
}
System.out.println("length: " + length);
}
/* Driver program to test above function */
public static void main(String[] args) {
int arr[] = {5, 3, 6, 4, 6, 6, 7, 5};
int n = arr.length;
ascentLength(arr, n);
}
}