Сделать 2 массива ($ B и $ C), используя элементы $ A, которые [(сумма элементов $ B) — (сумма элементов $ C)] равны минимальному числу (0, если возможно)?

Например, у нас есть массив $A с 11 элементами (независимо от того, если нечетное число, то это может быть 5 элементов в $B и 6 элементов в $Cили 8 элементов в $C и 3 элемента в $C). Результат должен соответствовать правилам из заголовка

$A = array(1, 2, 5, 7, 12, 11, 9, 13, 10, 3, 2)

$B = array(....)

$C = array(....)

которые удовлетворяют (сумма $B элементы) — (сумма $C элементы) = минимальное количество (0, если возможно)

-1

Решение

Сортируйте числа в $ A, затем начните перемещать их в $ B и $ C с начала или конца $ A по мере необходимости, сохраняя их сортировку. Когда вы закончите, вы можете выполнять бинарный поиск и сдвигать элементы вперед и назад по мере необходимости для баланса. Я добавлю пример кода, если вы хотите

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector