Предмет: Информатика,
автор: mrgooden1945
Наибольшая возрастающая подпоследовательность
У вас есть массив чисел длиною "N". Нужно найти следующую длину наибольшей возрастающей подпоследовательности. Ниже приведены несколько примеров
[1,3,5,4,7] => 3
[2,2,2,2,2] => 1
Входные данные:
(1 ≤ n ≤ 10000), где каждый элемент в массиве в промежутке (-10000 ≤ a[i] ≤ 10000)
Выходные данные:
Нужно найти следующую длину наибольшей возрастающей подпоследовательности.
Пример 1
Ввод:
8 86 62 91 22 59 71 46 100
Вывод:
3
Ответы
Автор ответа:
0
Ответ:
#include <iostream>
#include <ctime>
int main()
{
srand(time(NULL));
int size = 0;
while (size < 1 || size > 10000)
{
std::cout << "Enter size of the array: ";
std::cin >> size;
}
int* arr = new int[size];
for (int i = 0; i < size; i++)
{
arr[i] = -10000 + rand() % 20001;
std::cout << arr[i] << " ";
}
int counter = 1, inRow = 1;
for (int i = 0; i < size - 1; i++)
{
if (arr[i] < arr[i + 1])
{
inRow++;
} else
{
if (inRow > counter) counter = inRow;
inRow = 1;
}
}
std::cout << "\nResult: " << counter << std::endl;
delete[] arr;
}
Объяснение: C++
Похожие вопросы
Предмет: Українська мова,
автор: ludachokolad
Предмет: Қазақ тiлi,
автор: Farabi07
Предмет: Русский язык,
автор: gematageni20
Предмет: Математика,
автор: kata2774
Предмет: Алгебра,
автор: 24nastysha0180