1029 兩地排程

2022-01-15 10:47:09 字數 1084 閱讀 9066

公司計畫面試 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

思路:先假設2n個人全去了b公司,然後再挑出n個人來讓他們去a,然後每挑出乙個人的改變的費用是 price_a - price_b (差值可正可負)所以想到,這個差值越小則總費用需要的就越小,因此我們就可以根據這個差值進行公升序排列,讓前n個人去a,讓後n個人去b。

1

int twocityschedcost(vectorint>>&costs) 2);

4int n = costs.size() / 2, cost = 0;5

for(int i = 0; i < n; i++)69

return

cost;

10 }

1029 兩地排程

題目描述 公司計畫面試 2n 人。第 i 人飛往 a 市的費用為 costs i 0 飛往 b 市的費用為 costs i 1 返回將每個人都飛到某座城市的最低費用,要求每個城市都有 n 人抵達 示例 輸入 10,20 30,200 400,50 30,20 輸出 110 解釋 第乙個人去 a 市,...

leetcode 1029 兩地排程

兩地排程 公司計畫面試 2n 人。第 i 人飛往 a 市的費用為 costs i 0 飛往 b 市的費用為 costs i 1 返回將每個人都飛到某座城市的最低費用,要求每個城市都有 n 人抵達。示例 輸入 10,20 30,200 400,50 30,20 輸出 110 解釋 第乙個人去 a 市,...

leetcode 1029 兩地排程(貪心)

題目描述 公司計畫面試 2n 人。第 i 人飛往 a 市的費用為 costs i 0 飛往 b 市的費用為 costs i 1 返回將每個人都飛到某座城市的最低費用,要求每個城市都有 n 人抵達。題解 個人思路 為了近可能的降低費用,我們應該優先安排飛往a b兩市費用差距最大的去費用較小的市,以此來...