領釦LintCode演算法問題答案-1895. 安排面試城市

二當家的白帽子發表於2020-10-13

領釦LintCode演算法問題答案-1895. 安排面試城市

1895. 安排面試城市

描述

今天有 N 個面試者需要面試,公司安排了兩個面試的城市A和B,每一個面試者都有到A城市的開銷costA和到B城市的開銷costB。公司需要將面試者均分成兩撥,使得total cost最小。

  • N是偶數
  • 2 <= N <= 1e5
  • 答案確保在int範圍內
  • 1 <= costA,costB <= 1e6

題目要求去A的人數和去B的人數相等。

樣例 1:

輸入: cost = [[5,4],[3,6],[1,8],[3,9]]
輸出: 14
說明: 第一個和第二個人去B城市,剩下的去A城市

題解

public class Solution {
    /**
     * @param cost: The cost of each interviewer
     * @return: The total cost of all the interviewers.
     */
    public int TotalCost(List<List<Integer>> cost) {
        // write your code here
         Collections.sort(cost, new Comparator<List<Integer>>() {
            @Override
            public int compare(List<Integer> o1, List<Integer> o2) {
                return (o1.get(0) - o1.get(1)) - (o2.get(0) - o2.get(1));
            }
        });
        int ret = 0;
        for (int i = 0; i < cost.size() / 2; i++) {
            ret += cost.get(i).get(0);
        }
        for (int i = cost.size() / 2; i < cost.size(); i++) {
            ret += cost.get(i).get(1);
        }

        return ret;
    }
}

原題連結點這裡

鳴謝

非常感謝你願意花時間閱讀本文章,本人水平有限,如果有什麼說的不對的地方,請指正。
歡迎各位留言討論,希望小夥伴們都能每天進步一點點。

相關文章