Как удалить три или более подряд идущих элемента из массива?
Дан массив, состоящий из N элементов. Например, дана последовательность arr[N] = {7, 7, 7, 7, 7, 7, 7, 5, 5, 5, 5, 5, 4, 4, 4, 4, 8, 8}
Требуется удалить 3 или более подряд идущих элемента.
На выходе должно получиться 8 8.
Ответы (1 шт):
способ 1 (с извратами):
1.1. найти последовательность повторяющихся чисел (начало и размер)
1.2. если размер больше 3, то в новый массив копировать только 3 числа иначе всю последовательность
1.3. заменить старый массив новым
последовательность одинаковых чисел найти просто:
2.1. пройти в цикле от первого до последнего (предпоследнего) элемента
2.2. если текущий элемент равен следующему - увеличить длительность текущей последовательности
2.3. иначе считать, что последовательность закончилась и см. п.1.1
способ 2 (без извратов)
пройтись по всем элементам исходного массива
если текущий элемент равен предыдущему (или текущий элемент первый), увеличить счетчик одинаковых элементов
если счетчик одинаковых элементов не больше 3, то записать элемент в новый массив
если счетчик одинаковых элементов больше 3, то ничего не делать
если текущий элемент не равен предыдущему - сбросить счетчик до 1 и дальше см. п.3