1029. 两地调度
* @param {number[][]} costs
* @return {number}
*/
var twoCitySchedCost = function(costs) {
//1. 计算费用
const sumB = costs.reduce((acc, cur) => acc+ cur[1], 0);
const diff = costs.map(cost => cost[0] - cost[1])
diff.sort((a,b) => a -b)
diff.length = diffs.length / 2;
const sumA = diffs.reduce((acc, cur) => acc + cur, 0)
return sumB + sumA
};
// 为啥感觉就是求最小的值
先所有2n人飞b,总费用为sum;
改变其中n人的行程,那么就需要付出aCost-bCost的代价;
而最终希望的结果是sum尽可能地小,故只要aCost-bCost尽可能小即可;
对aCost-bCost进行排序,选择最小的前n个aCost-bCost,将这n个aCost-bCost加到sum即可。
/**最后更新于