トピック:同社は2N人にインタビューする予定です。i番目の人が都市Aに飛ぶためのコストはコスト[i] [0]であり、都市Bに飛ぶためのコストはコスト[i] [1]です。
全員を特定の都市に飛ばす最小コストに戻るには、各都市にN人が到着する必要があります。
例:
入力:[[10,20]、[30,200]、[400,50]、[30,20]]
出力:110
説明:
最初の人は都市Aに行き、費用は10です。
2人目は30の費用で都市Aに行きます。
3人目は50の費用で都市Bに行きます。
4人目は20の費用で都市Bに行きます。
最小総費用は10+ 30 + 50 + 20 = 110であり、各都市の半分の人が面接を行っています。
出典:LeetCode
リンク:https ://leetcode-cn.com/problems/two-city-scheduling
著作権はLeetCodeが所有しています。商用の再版については、公式の承認に連絡してください。非商用の再版については、出典を示してください。
コード:
int twoCitySchedCost(int** costs, int costsSize, int* costsColSize){
int temp[costsSize],sum=0;
for(int i=0;i<costsSize;i++){
sum+=costs[i][0];
}
for(int i=0;i<costsSize;i++){
temp[i]=costs[i][0]-costs[i][1];
}
for(int i=0;i<costsSize-1;i++){
for(int j=0;j<costsSize-i-1;j++){
if(temp[j]>temp[j+1]){
int tem=temp[j];
temp[j]=temp[j+1];
temp[j+1]=tem;
}
}
}
for(int i=costsSize/2;i<costsSize;i++){
sum-=temp[i];
}
return sum;
}