Leetcode第133周賽1029 兩地排程

2021-09-19 10:47:59 字數 1117 閱讀 5095

使用者通過次數 299

使用者嘗試次數 494

通過次數 305

提交次數 985

題目難度 easy

公司計畫面試 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,每個城市都有一半的人在面試。

1 <= costs.length <= 100

costs.length 為偶數

1 <= costs[i][0], costs[i][1] <= 1000

本方案參考自

算出每個人到a、b兩城費用差的絕對值並按此從大到小排列,現將選擇費用差較大的情況選擇費用較小的城市。

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

res = 0

n = len(costs) // 2

for i, cost in enumerate(costs):

if cost[0] <= cost[1] and acost[1] and a<=n and b=n:

a += 1

res += cost[0]

else:

b += 1

res += cost[1]

return res

Leetcode 第133場周賽解題報告

今天參加了leetcode的周賽,演算法比賽,要求速度比較快。有思路就立馬啟動,不會糾結是否有更好的方法或 可讀性。只要在演算法複雜度數量級內,基本上是怎麼實現快速就怎麼來了。比賽時先看的第二題,一看題就有了思路,直接用的廣度優先搜尋,寫完提交正確。再一看有人都做了3道題了,應該是職業選手了,要多像...

LeetCode周賽記錄 第196場周賽

2020年7月5日,leetcode第196場周賽個人記錄。第一次參加leetcode周賽,4道題目完成3道,中國排名163,全球排名377。對我個人來說算是個普通成績吧。以後打算每兩周參加一次周賽,同時利用部落格記錄下每次的成績,同時分享一下對於題目的個人想法和感受。給你乙個數字陣列 arr 如果...

Leetcode第130次周賽

第一題 水題 第二題 網上有關於 2進製的公式,就不贅述。下面講一下我自己的解法。用陣列a i 儲存其二進位制 首先對於i 1,3,奇數字進行處理,若奇數字為0,不做處理,若奇數字為1,則向前面的偶數字進1 對於i 0,2,偶數字進行處理時,若偶數字為0,1,均不做處理,若偶數字為2,此時需分兩種情...