公司計劃面試 2N 人。第 i 人飛往 A 市的費用為 costs[i][0],飛往 B 市的費用為 costs[i][1]。
返回將每個人都飛到某座城市的最低費用,要求每個城市都有 N 人抵達。
示例:
輸入:[[10,20],[30,200],[400,50],[30,20]]
輸出:110
解釋:
第一個人去 A 市,費用為 10。
第二個人去 A 市,費用為 30。
第三個人去 B 市,費用為 50。
第四個人去 B 市,費用為 20。
最低總費用為 10 + 30 + 50 + 20 = 110,每個城市都有一半的人在面試。
代碼
class Solution {public int twoCitySchedCost(int[][] costs) {int sumA=0,n=costs.length;int[] temp=new int[n];for(int[] t:costs)//全部去a的花費sumA+=t[0];for(int i=0;i<n;i++)//每個人去a和b的差價temp[i]=costs[i][0]-costs[i][1];Arrays.sort(temp);for(int i=n-1;i>=n/2;i--)//選擇差價大的去bsumA-=temp[i];return sumA;}
}