Проверить есть ли в массиве одинаковые элементы

Задача

Дан массив целых чисел. Проверить, есть ли в нем одинаковые элементы.

Решение

Чтобы проверить каждый элемент массива на уникальность, надо сравнить его с остальными элементами. Так первый элемент следует сравнить со вторым, третьим и т. д. до конца. После этого второй элемент — с третьим, четвертым и т. д. Второй элемент с первым сравнивать не надо, т.к. они уже сравнивались при оценке уникальности первого элемента. Когда очередь дойдет до предпоследнего элемента, то он сравнивается только с последним. Последний же уже сравнивать не надо. Таким образом, количество итераций внешнего цикла на 1 меньше, чем элементов в массиве. Счетчик этого цикла — это номер элемента, который сравнивается с элементами стоящими после него.

Внутренний цикл перебирает элементы от следующего за исследуемым до последнего. На данном отрезке элементы массива сравниваются с исследуемым элементом. Если какой-то элемент окажется равен исследуемому, то значит, что в массиве есть одинаковые значения. Следует вывести соответствующее сообщение и завершить программу, т.к. дальше уже можно не проверять.

Если программа в процессе выполнения циклов не завершилась, то значит, одинаковых элементов найдено не было. Следует вывести сообщение, что все элементы массива разные.

N — размер массива
arrayOfElement — сам массив
arrayOfDoubleElement — массив для сохранения совпавших элементов

int currentElement = 0; //Это счетчик показывающий сколько элементов было найдено и за счет
//него происходит запись элемента в нужную "ячейку" массива

Нужно при переборе массива выполнить условие в зависимости от того есть элемент в массиве или нет.

Читайте также  Слово голос по английски

2 ответа 2

Здесь все зависит от того, какого объема этот массив, и что нужно делать с элементами, которые повторяются.

Я бы предложил сделать так: пройти все элементы массива и построить массив, где ключами будут значения, значения будут — ключи первоначального массива:

Собственно все, теперь у вас есть массив $arraySpecial в котором содержится вся статистика по вашему изначальному массиву.

для начала можете использовать расширенную конструкцию foreach:

Всё ещё ищете ответ? Посмотрите другие вопросы с метками php массивы или задайте свой вопрос.

Похожие

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

дизайн сайта / логотип © 2019 Stack Exchange Inc; пользовательское содержимое попадает под действие лицензии cc by-sa 4.0 с указанием ссылки на источник. rev 2019.12.20.35703

Ссылка на основную публикацию
Adblock
detector