更多精彩內(nèi)容,請關(guān)注【力扣簡單題】。
題目
難度:★★☆☆☆
類型:數(shù)學(xué)
公司計劃面試 2N 人。第 i 人飛往 A 市的費用為 costs[i][0],飛往 B 市的費用為 costs[i][1]。
返回將每個人都飛到某座城市的最低費用,要求每個城市都有 N 人抵達(dá)。
提示
1 <= costs.length <= 100
costs.length 為偶數(shù)
1 <= costs[i][0], costs[i][1] <= 1000
示例
輸入:[[10,20],[30,200],[400,50],[30,20]]
輸出:110
解釋:
第一個人去 A 市,費用為 10。
第二個人去 A 市,費用為 30。
第三個人去 B 市,費用為 50。
第四個人去 B 市,費用為 20。
最低總費用為 10 + 30 + 50 + 20 = 110,每個城市都有一半的人在面試。
解答
class Solution:
def twoCitySchedCost(self, costs):
costs.sort(key=lambda x: (x[0]-x[1])) # 計算去A地和去B低的費用差,然后按照費用差排序
length_costs = len(costs)
result = 0
result += sum([i[0] for i in costs[:length_costs//2]]) # 前半部分去A地
result += sum([i[1] for i in costs[length_costs//2:]]) # 后半部分去B地
return result
如有疑問或建議,歡迎評論區(qū)留言~