Найдите элемент массива, имеющий минимальную сумму абсолютных разностей со всеми остальными элементами массива.

Опубликовано: 22 Сентября, 2022

Учитывая массив arr[] размера N , задача состоит в том, чтобы найти минимальную сумму абсолютных разностей элемента массива со всеми элементами другого массива.

Input: arr[ ] = {1, 2, 3, 4, 5}, N = 5
Output: 3
Explanation: 
For arr[0](= 1): Sum = abs(2 – 1) + abs(3 – 1) + abs(4 – 1) + abs(5 – 1) = 10.
For arr[1](= 2): Sum = abs(2 – 1) + abs(3 – 2) + abs(4 – 2) + abs(5 – 2) = 7.
For arr[2](= 3): Sum = abs(3 – 1) + abs(3 – 2) + abs(4 – 3) + abs(5 – 3) = 6 (Minimum).
For arr[3](= 4): Sum = abs(4 – 1) + abs(4 – 2) + abs(4 – 3) + abs(5 – 4) = 7.
For arr[0](= 1): Sum = 10.

Input: arr[ ] = {1, 2, 3, 4}, N = 4
Output: 2

Подход: Задача может быть решена на основе наблюдения, что сумма абсолютных разностей всех элементов массива минимальна для медианы массива. Выполните следующие шаги, чтобы решить проблему:

  • Отсортируйте массив arr[] .
  • В качестве требуемого ответа выведите средний элемент отсортированного массива.

Ниже приведена реализация вышеуказанного подхода:

Временная сложность: O(NlogN)
Вспомогательное пространство: O(1)