Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <conio.h>
- int MaxSubSet(int *A, int nA)//функция поиска максимальной длины неубывающей подпоследовательности
- {
- int k = 0;//вспомогательная переменная, счетчик количества чисел
- int max = 0;//пееременная, которая будет хранить длину максимальной подпоследовательности
- bool isFirst = true;//определяет, является ли данное число первым в подпоследовательности
- for (int i = 1;i < nA - 1;i++)
- {
- if (A[i - 1] > A[i] && isFirst)//если число является первым и предыдущее число больше этого числа, то
- {
- isFirst = false;//переменная станет ложью
- }
- if (!isFirst)//если число не является первым, то
- {
- k++;
- if (A[i + 1] < A[i])//если достигнут конец подполседовательности, то(следуещее число меньше предыдущей)
- {
- isFirst = true;//следуеее число будет первым числом
- if (k > max) max = k;//если кколичество чиселл в подпоследовательности больше, чем в переменной max, то заменяем максимальное значение на текущее значение переменной k
- k = 0;//и обнуляем количество чисел
- }
- }
- }
- return max;//возвращаем длину максимальной подпоследовательности
- }
- int main()
- {
- int nA = 8;
- int A[] = { 10,7,3,3,15,14,15,3 };
- int maxLength = MaxSubSet(A, nA);
- printf("%d ", maxLength);
- _getch();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement