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

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

Войти
Регистрация
Восстановить пароль
 
Ejevikka
0 / 0 / 0
Регистрация: 18.02.2012
Сообщений: 38
#1

Преобразовать массив, уменьшив каждую его серию на один элемент. - C++

11.03.2012, 15:37. Просмотров 530. Ответов 1
Метки нет (Все метки)

Дан целочисленный массив размера N, содержащий по крайней мере одну серию, длина которой больше 1. Преобразовать массив, уменьшив каждую его серию на один элемент.
серия - группа подряд идущих одинаковых элементов,
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.03.2012, 15:37     Преобразовать массив, уменьшив каждую его серию на один элемент.
Посмотрите здесь:

Дан целочисленный массив размера N. Преобразовать массив, увеличив каждую его серию на один элемент - C++
Помогите преобразовать код из языка С# в С++. Занимался разбором задачи на языке С++. Вот условие задачи: Дан целочисленный массив...

Дан целочисленный массив размера N. Преобразовать массив, увеличив каждую его серию на один элемент - C++
1. Дан целочисленный массив размера N. Преобразовать массив, увеличив каждую его серию на один элемент. (Серия - группа подряд идущих...

Преобразовать массив, увеличив его первую серию наибольшей длины на один элемент - C++
Ребятки, кому не сложно выручите с задачкой) Дан целочисленный массив размера N. Преобразовать массив, увеличив его первую серию...

Заменить каждую серию, длина которой больше k, на один наименьший элемент массива - C++
3. Дан массив, состоящий из n элементов. Назовем серией группу подряд идущих одинаковых элементов, а длиной серии – количество этих...

Заменить каждую серию массива, длина которой равна L, на один элемент с нулевым значением - C++
Здравствуйте.Дано целое число L (> 0) и целочисленный массив размера N. Заменить каждую серию массива, длина которой равна L, на один...

Заменить каждую серию массива, длина которой равна L, на один элемент с нулевым значением - C++
нужно решение Дано целое число L (>0) и целочисленный массив размера N. Заме- нить каждую серию массива, длина которой равна L, на...

Каждую серию элементов в массиве увеличить на 1 элемент - C++
Такая задача на С++. В каждую серию элементов добавить еще один такой же элемент. Помогите решить все что я смогу написать: #include...

Дан целочисленный массив размером N. Преобразовать массив, увеличив длину каждой серии на один элемент - C++
#include "stdafx.h" #include <iostream> using namespace std; int main() { int n; int k=0; int p=0; int l=0; int...

Преобразовать массив, если в нем есть хоть один отрицательный элемент - C++
Прошу помочь с решением. Даны целые массивы А, B и значения P и Q. Каждый массив пpеобpазовать по пpавилу: если в массиве есть хотя...

Преобразовать массив, увеличив первую/последнюю/все серии наибольшей длины на один элемент - C++
Вот задача Дан целочисленный массив размера N. Преобразовать массив, увеличив первую1|последнюю2|все3 серии наибольшей длины на один...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
11.03.2012, 16:03     Преобразовать массив, уменьшив каждую его серию на один элемент. #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
#include <iostream>
#include <algorithm>
#include <cstddef>
#include <iterator>
#include <list>
 
int main()
{
   std::list<int> vec = {1,1,2,3,4,4,4,3,2,1,5,5};
   std::list<int>::iterator iter = vec.begin();
   while (iter != vec.end())
   {
      std::list<int>::iterator next = std::find_if(iter, vec.end(), [&iter](const int value) { return value != *iter; });
      ptrdiff_t difference = std::distance(iter, next);
      iter = next;
      if (difference > 1)
      {
         std::advance(iter, -1);
         iter = vec.erase(iter);
      }
   }
   std::copy(vec.begin(), vec.end(), std::ostream_iterator<int>(std::cout, " "));
   std::cout << std::endl;
}
http://liveworkspace.org/code/86aabf...412dd658f82b21
Ответ Создать тему
Опции темы

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