检查所有任务的程序是否可以使用给定的服务器内核在 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