Алгоритм: объединение разделов - PullRequest
0 голосов
/ 17 июня 2020

Есть компьютер с жестким диском, который разбит на несколько разделов. Вы хотите переместить данные так, чтобы использовать наименьшее количество разделов. Учитывая, сколько места в настоящее время используется на каждом разделе, а также общая емкость каждого раздела, какое минимальное количество разделов необходимо для хранения всех данных, если вы переместите их оптимально?

Например, скажем, есть 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

Кто-нибудь, пожалуйста, может помочь мне решить эту проблему? Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...