Как разбить массив на два подмножества и сохранить сумму подмножеств массива как можно более равной

Мне действительно нужен мастер алгоритма здесь! Дело в том, что я получил, например, такой массив:

[
    [870, 23]
    [970, 78]
    [110, 50]
]

и я хочу разделить это так, чтобы это выглядело так:

// first array
[
    [970, 78]
]
// second array
[
    [870, 23]
    [110, 50]
]

так что теперь, почему я хочу, чтобы это тоже выглядело так?

Потому что я хочу, чтобы сумма значений была максимально возможной. Так970 около870 + 110 а также78 около23 + 50, Так что в этом случае этоЭто очень просто, потому что если вы просто разделите их и посмотрите только на первое подзначение, это уже будет правильно, но я хочу проверить оба и сохранить их как можно более равными, чтобыЯ также буду работать с массивом, который получил 100 под-массивов! Так что, если кто-нибудь может сказать мне алгоритм, с помощью которого я могу запрограммировать это, это было бы действительно здорово!

Напольные весы:

~ 1000 элементов (подсписков) в массивеЭлементы целые до 10 ^ 9

Я ищу "достаточно близкое решение "-это не должно быть точным оптимальным решением.

Ответы на вопрос(4)

Ваш ответ на вопрос