Вы можете сделать это на месте.
1) Держите указатель i
и j
, указывая в начале. Теперь увеличьте указатель j
до последующих элементов до тех пор, пока не найдет другой элемент (отличный от того, на который указывает i
).
A A B B B C D D
^^^
i j j //(j increasing, stopped at B)
2) Как только будет найден другой элемент, сделайте arr[++i] = arr[j];
. То есть, копирование нового элемента на следующую позицию i
.
A B B B B C D D
^^
i j
3) Теперь перезапустите процесс. А теперь увеличьте j
как на первом шаге и повторите.
A B B B B C D D
^^^^^
i j j j j //(j increasing, stopped at C)
Этого это просто комментарий ИМО. – HimBromBeere
@ Хим нет, это не так. Нигде не указано, что ответ должен содержать код для копирования. Этот ответ описывает алоризм, который работает, зависит от того, хотят ли они его реализовать. – CodeCaster
Это в значительной степени то, что вам нужно сделать, хотя и достаточно для меня. – Carra