Дан целочисленный массив из элементов. Элементы массива различны и могут принимать значения от -10000 до 10000. Опишите на одном из языков программирования алгоритм, который находит и выводит длину наибольшей возрастающей последовательности. Под возрастающей последовательностью подразумеваются подряд идущие элементы, где каждый следующий элемент строго больше предыдущего.
Например, для исходного массива из 6 элементов
-4
5
6
-7
8
2
программа должна вывести
3
Исходные данные объявлены так, как показано ниже на примерах для некоторых языков программирования. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных. Индексация элементов в массиве начинается с 0.
В переменной будем хранить длину наибольшей возрастающей последовательности. Так как наименьшая длина последовательности — это 1 (если последовательность состоит из одного элемента), изначально
.
В цикле будем проверять, сколько элементов идет подряд в порядке возрастания. Это количество мы будем хранить в переменной
. Аналогично длине наибольшей возрастающей последовательности изначально
. Если
, то есть следующий элемент больше текущего, увеличим
на 1 (так как мы нашли еще один элемент возрастающей последовательности). Если же это условие не выполнилось, то эта возрастающая последовательность закончилась. Сравним
— ее длину — с длиной наибольшей возрастающей последовательности (с
). Если
. После этого приравняем
к единице, так как мы начнем рассматривать следующую возрастающую последовательность и искать ее длину.
После цикла выведем — длину наибольшей возрастающей последовательности.
Пример на :