Существует массив, содержащий число от 0 до 999 в строго возрастающем порядке.Выбор номеров для максимального интервала
Например
int[] array = {0, 24, 55, 124, 200, 259, 400, 503, 666, 797};
Что я должен сделать, это реализовать функцию, которая выбирает N чисел так, чтобы минимальное значение расстояния между этими отборными числами максимально.
Например, если N равно 3, то выбранные числа - 0, 400, 797, а интервалы - 400 и 397; поэтому возвращаемое значение равно 397 (которое должно быть увеличено). Если мы выберем другие наборы чисел, тогда возвращаемое значение будет меньше (или равно) 397.
Я хотел бы реализовать его с помощью рекурсии, но мне сложно его кодировать. Вы хотите мне помочь?
Каков предел на $ n $? какую сложность вы ожидаете? что вы попробовали? – sashas
Эта проблема уже решена. См. Следующий поток [Найти подмножество размера k, чтобы максимальное расстояние между значениями было максимально) (http://stackoverflow.com/questions/22424885/find-subset-of-size-k-such-that- the-minimum -distance-between-values-is-maximum) –
Если N равно 3, вам нужно выбрать первый элемент, последний и тот, который ближе всего к средней точке, это двоичный поиск, так что это O (log (п). Для более высокого N может быть что-то подобное. –