Эта проблема в основном является проблемой оптимизации алгоритма.Найти номер, ближайший ко всем числам в массиве
У нас есть список, содержащий n элементов. например. {n1,n2,n3...nk}
Этот список сортируется, и мы должны выяснить, число Ni, который
n1<=ni<=nk
- Сумма расстояния
ni
от каждого номера минимальна.
Там может быть полным (nk-n1+1)
возможных номеров, но наша цель состоит в том, чтобы узнать номер ni
, который ближайших ко всем другим номерам.
Подход с грубой силой может быть переименован через n1
в nk и рассчитать сумму дистанций из всех номеров. Таким образом, мы можем легко найти число, которое ближе всего ко всем другим номерам в списке.
Но проблема с этим подходом заключается в том, что это не хорошо с точки зрения сложности времени. Сложность этого подхода составляет O(n^2)
.
Я думаю, что может быть лучший способ сделать это, что может решить эту проблему за меньшее время сложность.
Любой подход будет оценен.
Какое определение «расстояние» вы используете? –
Как насчет поиска с бинарным поиском, потому что вы упомянули, что список отсортирован? – kamaci
да расстояние (a, b) = abs (ab) – vicky