找出Python中可以满足多少传输请求的程序

假设有 n 个宿舍房间,编号从 0 到 n-1。宿舍房间里的学生想转移到另一个房间,他们提出了几个要求。宿舍没有空位,只有当另一名学生代替愿意转学的学生时,才会处理转学请求。因此,给定请求,我们必须找出可以满足多少请求。

所以,如果输入像 n = 3, requests = [[0,2],[1,0],[2,1]],那么输出将是 3。

0 号房间的学生转移到 2 号房间。

1 号房间的学生转移到 0 号房间。

2 号房间的学生转移到 1 号房间。

示例

让我们看下面的实现来更好地理解

from itertools import combinations

def solve(n, requests):

   for k in range(len(requests), 0, -1):

      for c in combinations(range(len(requests)), k):

         d = [0] * n

         for i in c:

            d[requests[i][0]] -= 1

            d[requests[i][1]] += 1

         if not any(d):

            return k

   return 0

print(solve(3, [[0,2],[1,0],[2,1]]))

输入

3, [[0,2],[1,0],[2,1]]
输出结果
3

以上是 找出Python中可以满足多少传输请求的程序 的全部内容, 来源链接: utcz.com/z/327429.html

回到顶部