这样来看这个问题,公司首先将这 2N 个人全都安排飞往 A 市,再选出 N 个人改变它们的行程,让他们飞往 A 市。因为全部去往 A 市的总费用 $Sum$ 是确定的,改变 N 个人的行程后总费用为 $Sum - \sum_{n=1}^{len/2} (cost[n][0] - cost[n][1])$,自然是每一组A、B费用差值越大越好了😃。
📝题解
1 2 3 4 5 6 7 8 9 10 11 12 13 14
inttwoCitySchedCost(vector<vector<int>>& costs){ int len = costs.size(); int result = 0; vector<int> diff; for (int i = 0; i < len; ++i){ result += costs[i][0]; diff.push_back(costs[i][0]-costs[i][1]); } sort(diff.begin(), diff.end()); for (int i = len-1; i >= len/2; --i){ result -= diff[i]; } return result; }