检查所有任务的程序是否可以使用给定的服务器内核在 Python 中执行
假设我们有两个列表,它们是核心和任务。cores[i]表示第i个服务器中可用的内核数。tasks[i]表示执行该任务所需的内核数。每个任务只能在一台服务器上运行。一个服务器可能有多个任务要运行。我们必须检查是否可以使用给定的内核运行所有任务。
所以,如果输入像cores=[10,7]tasks=[7,3,2,2,1],那么输出就是True,因为我们可以先把tasks[0]和tasks[1]放到内核10的服务器,其余任务在内核为7的第二台服务器上。
示例
让我们看看以下实现以获得更好的理解-
def solve(cores, tasks):
if not tasks:
return True
for i in range(len(cores)):
if cores[i] >= tasks[0]:
cores[i] -= tasks[0]
if solve(cores, tasks[1:]):
return True
cores[i] += tasks[0]
return False
cores = [10, 7]
tasks = [7, 3, 2, 2, 1]
print(solve(cores, tasks))输入
[10, 7], [7, 3, 2, 2, 1]输出结果
True