Программа PHP для поиска недостающих элементов в массиве
Опубликовано: 24 Февраля, 2022
Мы должны найти элемент (ы) в массиве, который отсутствует в массиве в диапазоне от минимума до максимума массива.
Примеры:
Ввод: arr [] = (1, 2, 3, 4, 6, 7, 8) Выход: 5 Минимум массива равен 1, а максимум - 8. Недостающий элемент в диапазоне от От 1 до 8 равно 5. Ввод: arr [] = (10, 11, 14, 15) Выход: 12, 13
Рекомендуется: сначала попробуйте свой подход в {IDE}, прежде чем переходить к решению.
Эта проблема может быть решена путем итерации в массиве, наблюдая непрерывную разницу между элементами. Но в PHP мы можем использовать некоторые встроенные функции для решения проблемы.
Для этой цели нам нужно будет использовать следующие две функции:
- Функция range (): эта функция используется для создания массива элементов любого типа, таких как целые числа, алфавиты в заданном диапазоне (от низкого до высокого), т.е. первый элемент списка считается низким, а последний - высоким.
- Функция array_diff (): если у нас есть массив элементов, мы можем найти недостающие элементы, сравнив два массива.
The idea to solve this problem using two inbuilt functions is to, first use range() function to create a new array from starting element and maximum element of original array using max() function. After this we apply array_diff() function to compare newly created array and original array thus getting all the missing elements of the original array.
<?php // PHP code to find missing elements function not_present( $list ) { // Create an array with range from array // minimum to maximum. $new_array = range(min( $list ), max( $list )); // Find those elements that are present // in new_array but not in given list return array_diff ( $new_array , $list ); } // Driver code print_r(not_present( array (1, 2, 3, 4, 7, 8))); print_r(not_present( array (10, 11, 12, 14, 15, 16))); ?> |
Выход:
Множество ( [4] => 5 [5] => 6 ) Множество ( [3] => 13 )