Учитывая связанный список целых чисел в случайном порядке, разбейте его на два новых связанных списка так, чтобы разница в сумме элементов каждого списка была максимальной, а длина списков отличалась не более чем на 1 (в случаечто исходный список имеет нечетное количество элементов). Я не могу предположить, что числа в списке уникальны.
Я думал, что алгоритм должен был выполнить сортировку слиянием в исходном связанном списке ( O (n ·)запишите n) время, O (n) пробел), а затем используйте рекурсивную функцию, чтобы перейти к концу списка, чтобы определить его длину, выполняя разбиение, пока рекурсивная функция раскручивается.Рекурсивная функция: O (n) время и O (n) пробел.
Является ли это оптимальным решением?Я могу опубликовать свой код, если кто-то считает, что это актуально.