Есть компьютер с жестким диском, который разбит на несколько разделов. Вы хотите переместить данные так, чтобы использовать наименьшее количество разделов. Учитывая, сколько места в настоящее время используется на каждом разделе, а также общая емкость каждого раздела, какое минимальное количество разделов необходимо для хранения всех данных, если вы переместите их оптимально?
Например, скажем, есть n = 5 разделов, где в настоящее время используется пространство = [3,2,1,3,1], а общая емкость totalSpace = [3,5,3,5,5], вы можете переместить эти данные примерно так:
a) переместите данные из 1-го раздела во 2-й раздел, и 1-й раздел будет пустым b) переместите данные 3-го и 5-го разделов в 4-й раздел, а 3-й и 5-й раздел будут свободными.
Окончательный результат: 2;
function: int minPartition(List usedSpace, List totalSpace){
//code
}
Тестовый пример 1: Ввод: usedSpace = [3,2,1,3,1]; totalSpace = [3,5,3,5,5]; вывод: 2
Тестовый пример 2: Вход: usedSpace = [3,3,3]; totalSpace = [5,5,5]; вывод: 3
Кто-нибудь, пожалуйста, может помочь мне решить эту проблему? Спасибо