Максимальное число, на которое можно разделить весь элемент массива после одной замены
Опубликовано: 21 Сентября, 2022
Учитывая массив arr , замените любой элемент в массиве любым другим целым числом. Задача состоит в том, чтобы вернуть максимальное число, которое полностью делит все элементы этого массива.
Примеры:
Input: arr = [15, 9, 3]
Output: 3
Explanation: Here replace 15 with 3 so array becomes arr = [3, 9, 3] and now all elements in array are divisible by 3, so 3 is our answerInput: arr = [16, 5, 10, 25]
Output: 5
Подход: Чтобы решить вышеуказанную проблему:
- Итерировать целое число массива i от нуля до меньшего, чем его длина
- Каждый раз удалять i-й элемент из массива, находить наибольший общий делитель и сохранять в переменной НОД
- Обновить maxGcd , если текущий gcd больше, чем maxGcd
Ниже приведена реализация вышеуказанного подхода:
Сложность времени: O((N^2) * Log(M)), где M — минимальное значение в массиве.
Вспомогательное пространство: O(1)