假设我们有一个名为成本的列表。cost[i] 有 [c1, c2] 表示对于人 i,到达城市 0 的成本为 c1,到达城市 1 的成本为 c2。我们希望前往城市 0 的人数与前往城市 1 的人数相同,我们必须找到所需的最低成本。
因此,如果输入类似于成本 = [[2, 6],[10, 3],[4, 9],[5, 8]],那么输出将是 17,因为人 0 和 2 将去城市0和人1和3到城市1,所以对于城市0,成本是2+4=6,对于城市1,成本是8+3=11,总共是17。
让我们看看以下实现以获得更好的理解 -
def solve(costs): s = 0 a = [] for x, y in costs: s += x a += (y - x,) a.sort() for i in range(len(a) // 2): s += a[i] return s costs = [[2, 6],[10, 3],[4, 9],[5, 8]] print(solve(costs))
[[2, 6],[10, 3],[4, 9],[5, 8]]输出结果
17