Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 25, средняя оценка - 4.68
IrinaHM
0 / 0 / 0
Регистрация: 18.10.2010
Сообщений: 3
#1

Найти ее максимальную возрастающую подпоследовательность - C++

18.10.2010, 08:07. Просмотров 3712. Ответов 5
Метки нет (Все метки)

Здравствуйте, помогите студентке, завтра надо сдать задачи, одна не получается
Дана последовательность целых чисел. Найти ее максимальную
возрастающую подпоследовательность. (Хотя бы одну)
Пример: 8 1 3 2 3 9 4 8 6 -> 1 2 3 4 6
^ ^ ^ ^ ^
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.10.2010, 08:07     Найти ее максимальную возрастающую подпоследовательность
Посмотрите здесь:

Найти максимальную возрастающую подпоследовательность в одномерном массиве - C++
Помогите найти максимальную возрастающую подпоследовательность в одномерном массиве.

Найти наибольшую возрастающую подпоследовательность в массиве - C++
Здравствуйте. Требуется найти наибольшую возрастающую подпоследовательность в массиве (для 1 2 3 1 2 5 6 1 будет 1 2 5 6). Вот...

В заданном числе найти максимальную по длине подпоследовательность - C++
В данном числе m найти максимальную по длине подпоследовательность так,чтобы элементы были в возрастающем порядке.... помогите плиз...

Найти максимальную по длине подпоследовательность так, чтобы элементы были в возрастающем порядке - C++
В данном числе m найти максимальную по длине подпоследовательность так,чтобы элементы были в возрастающем порядке.

В строке символов найти максимальную подпоследовательность символов, являющуюся палиндромом - C++
Народ, помогите пожалуйста. Нужно написать программу, используя динамический массив. Вот условие задачи: В строке символов найти...

Найти максимальную оценку студента и вывести его ID потом фамилию и максимальную оценку - C++
Здравствуйте! Мне нужно найти максимальную оценку студента и вывести его ID потом фамилию и макс оценку Вот образец INPUT: 3 1...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mamedovvms
2916 / 837 / 93
Регистрация: 30.04.2009
Сообщений: 2,624
18.10.2010, 08:38     Найти ее максимальную возрастающую подпоследовательность #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
max=1;
tempmax=1;
indexmax=0;
for(int i=1,i<n;i++)
{
 if (a[i]<=a[i-1])
 {
  if (tempmax > max)
   {
    max=tempmax;
    indexmax = i - max;
    tempmax=1;
   }
  else
  {
   tempmax++;
  }
 
 }
}
 
for (int i=indexmax;i<indexmax + max -1;i++)
{
  cout<<a[i]<<" ";
}
IrinaHM
0 / 0 / 0
Регистрация: 18.10.2010
Сообщений: 3
18.10.2010, 09:14  [ТС]     Найти ее максимальную возрастающую подпоследовательность #3
А можно еще комменты написать в модуле?
mamedovvms
2916 / 837 / 93
Регистрация: 30.04.2009
Сообщений: 2,624
18.10.2010, 10:07     Найти ее максимальную возрастающую подпоследовательность #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
max=1;//Максимальная длина последовательности
tempmax=1;//Длина текущей последовательности
indexmax=0;//Номер первого элемента максимальной длины последовательности
for(int i=1,i<n;i++)
{
 if (a[i]<=a[i-1])//Если предыдущий элемент больше или равен следующему, тогда проверяем
 {
  if (tempmax > max) //Если длина текущей последовательности больше максимальной, тогда
   {
    max=tempmax;//максимальной присваем значение текущей
    indexmax = i - max;//находим номер первого элемента этой последовательности
    tempmax=1;//присваиваем минимальное возможное значение текуще последовательности
   }
  else // иначе, то есть если следующий элемент больше предыдущего
  {
   tempmax++;//увеличиваем длину текущей последовательности на 1
  }
 
 }
}
 
for (int i=indexmax;i<indexmax + max -1;i++)//начиная с первого элемента максимальной последовательности, выводим все элементы этой максимальной последовательности
{
  cout<<a[i]<<" ";
}
IrinaHM
0 / 0 / 0
Регистрация: 18.10.2010
Сообщений: 3
19.10.2010, 06:56  [ТС]     Найти ее максимальную возрастающую подпоследовательность #5
Выдает неправильный результат, например в последовательности 7 2 4 4 7 9 выдает 4 4?

Добавлено через 17 часов 36 минут
Помогите исправить, чтобы правильно выбирала... Крик души....
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.10.2010, 08:22     Найти ее максимальную возрастающую подпоследовательность
Еще ссылки по теме:

Найти наибольшую общую подпоследовательность двух последовательностей - C++
Задача об отыскании наибольшей общей подпоследовательности (динамическое программирование). Даны две последовательности символов (строки),...

Найти максимально длинную подпоследовательность чисел по условию - C++
В заданной последовательности целых чисел найти с помощью процедуры максимально длинную подпоследовательность чисел такую, что каждый...

Найти подпоследовательность из подряд идущих элементов с наибольшей суммой - C++
Вводится массив. Найти в нем подпоследовательность из подряд идущих элементов с наибольшей суммой

Найти в массиве подпоследовательность из подряд идущих элементов с наибольшей суммой - C++
В чем причина , прекращения работы программы? Задача: Найти в массиве подпоследовательность из подряд идущих элементов с наибольшей...

Найти номер элемента из массива А, с которого массив В начинается как подпоследовательность - C++
Помогите, пожалуйста, написать программу, которая находила бы номер элемента из массива А, с которого массив В начинается как...

В заданной последовательности найти подпоследовательность согласно условию, а в ней - минимальное значение - C++


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
mamedovvms
2916 / 837 / 93
Регистрация: 30.04.2009
Сообщений: 2,624
19.10.2010, 08:22     Найти ее максимальную возрастающую подпоследовательность #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
max=1;
tempmax=1;
indexmax=0;
for(int i=1,i<n;i++)
{
 if (a[i]<=a[i-1])
 {
  if (tempmax > max)
   {
    max=tempmax;
    indexmax = i - max;
   }
   tempmax=1;
  }
  else
  {
   tempmax++;
  }
}
 
for (int i=indexmax;i<indexmax + max -1;i++)
{
  cout<<a[i]<<" ";
}
Извините скобочку не там поставил
Yandex
Объявления
19.10.2010, 08:22     Найти ее максимальную возрастающую подпоследовательность
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru