| by suyi | No comments

GO:两地调度

公司计划面试 2N 人。第 i 人飞往 A 市的费用为 costs[i][0],飞往 B 市的费用为 costs[i][1]。

返回将每个人都飞到某座城市的最低费用,要求每个城市都有 N 人抵达。

func twoCitySchedCost(costs [][]int) int {
    sum := 0
    diff := make([]int, len(costs))
    for ind, val := range costs {
        // 所有去A地的和
        sum += val[0]
        // 去B地与去A地的差值
        diff[ind] = val[1] - val[0]
    }

    sort.Ints(diff)

    // 选一半去B地
    for i := 0; i < len(costs) / 2; i++ {
        sum += diff[i]
    }

    return sum
}

发表评论