找出Python中可以满足多少传输请求的程序
假设有 n 个宿舍房间,编号从 0 到 n-1。宿舍房间里的学生想转移到另一个房间,他们提出了几个要求。宿舍没有空位,只有当另一名学生代替愿意转学的学生时,才会处理转学请求。因此,给定请求,我们必须找出可以满足多少请求。
所以,如果输入像 n = 3, requests = [[0,2],[1,0],[2,1]],那么输出将是 3。
0 号房间的学生转移到 2 号房间。
1 号房间的学生转移到 0 号房间。
2 号房间的学生转移到 1 号房间。
示例
让我们看下面的实现来更好地理解
from itertools import combinationsdef 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