Я пишу программу распределения мест и сфокусировал проблему на одном ряду сидений. Я хочу выделить следующее сиденье так, чтобы оно находилось на дальнем расстоянии от ближайшего места. Я решил, что проблема может быть записана следующим образом:
Учитывая целочисленный список (всех мест) и подмножество (занятых мест), найдите наименьшее целое число, которое имеет максимальную разницу от ближайшего соседнего номера.
Максимальная разница от ближайшего соседа
Например:
Input: [1,2,3,4,5,6,7,8,9,10], [1,10]
Output: 5
(Actually it is 5 or 6 but we take the smallest)
Input: [1,2,3,4,5,6,7,8,9,10], [5,10]
Output: 1
(1 is 4 numbers away from 5, any other number is 3 or less numbers away from 5 or 10)
Input: [1,2,3,4,5,6,7,8,9,10], [1,5,10]
Output: 3
(Possible candidates are 3, 7 or 8 but we take the smallest)
Я попытался петля каждого оставшегося целого числа через взятое подмножество и взять среднее и сумму разностей но вывод не является правильным.
Уверен, что для этой проблемы уже существует алгоритм. Какой алгоритм вы бы использовали (чтобы я настроил себя в правильном направлении)? Спасибо.
Соответствует ли первый параметр («список всех мест»)? Будет ли это когда-нибудь иначе, чем '[1 .. n]'? – Jasper
вы можете подробнее рассказать о втором списке, например '[1,5,10]' в последнем примере? – Kasramvd
Является первым массивом всегда 1, ..., x? или может также быть [1,2,5,10]? – amit