LeetCode 1029. 两地调度(贪心)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 1029. 两地调度(贪心)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1. 題目
- 2. 貪心
1. 題目
公司計劃面試 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來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/two-city-scheduling
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 貪心
- 將數據按照 A-B 的花費差值排序(小到大),前半部分去A,后半部分去B
A1?B1=C1,A2?B2=C2{ {A_1} - {B_1} = {C_1}, {A_2} - {B_2} = {C_2} }A1??B1?=C1?,A2??B2?=C2?
C1<=C2{ {C_1} < = {C_2} }C1?<=C2?
A1?B1<=A2?B2?A1+B2<=A2+B1{{A_1} - {B_1} < = {A_2} - {B_2} \Rightarrow {A_1} + {B_2} < = {A_2} + {B_1}} A1??B1?<=A2??B2??A1?+B2?<=A2?+B1?
- 所以1去A,2去B
總結
以上是生活随笔為你收集整理的LeetCode 1029. 两地调度(贪心)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 665. 非递减数列(
- 下一篇: 程序员面试金典 - 面试题 16.24.