今天沒有叨逼叨...可是又一次錯過了競賽...
愛睡覺的小李...下週要上班,下下週必定要參加了(握拳面試
1029. 兩地調度
公司計劃面試2N
人。第i
人飛往 A 市的費用爲 costsi,飛往 B 市的費用爲 costsi。
返回將每一個人都飛到某座城市的最低費用,要求每一個城市都有N
人抵達。.net
示例:code
輸入:[[10,20],[30,200],[400,50],[30,20]]
輸出:110
解釋:
第一我的去 A 市,費用爲 10。
第二我的去 A 市,費用爲 30。
第三我的去 B 市,費用爲 50。
第四我的去 B 市,費用爲 20。
最低總費用爲 10 + 30 + 50 + 20 = 110,每一個城市都有一半的人在面試。blog
提示:ci
1 <= costs.length <= 100
costs.length 爲偶數
1 <= costsi, costs i <= 1000
個人題解:leetcode
class Solution(object): def twoCitySchedCost(self, costs): """ :type costs: List[List[int]] :rtype: int """ costs = sorted(costs,key = lambda x:abs(x[0] - x[1])) costs = costs[::-1] a,b = 0,0 n = len(costs) //2 res = 0 for i in costs: if a < n and b < n: if i[0] < i[1]: a += 1 res += i[0] else: b += 1 res += i[1] elif a<n: a += 1 res += i[0] else: b += 1 res += i[1] return res
個人思路:
參考了小江同窗的思路(她的blog還在小黑屋...後續補上連接)和這位同窗的思路。get