zoukankan      html  css  js  c++  java
  • 【leetcode】1029. Two City Scheduling

    题目如下:

    There are 2N people a company is planning to interview. The cost of flying the i-th person to city A is costs[i][0], and the cost of flying the i-th person to city B is costs[i][1].

    Return the minimum cost to fly every person to a city such that exactly N people arrive in each city.

    Example 1:

    Input: [[10,20],[30,200],[400,50],[30,20]]
    Output: 110
    Explanation: 
    The first person goes to city A for a cost of 10.
    The second person goes to city A for a cost of 30.
    The third person goes to city B for a cost of 50.
    The fourth person goes to city B for a cost of 20.
    
    The total minimum cost is 10 + 30 + 50 + 20 = 110 to have half the people interviewing in each city.
    

    Note:

    1. 1 <= costs.length <= 100
    2. It is guaranteed that costs.length is even.
    3. 1 <= costs[i][0], costs[i][1] <= 1000

    解题思路:我的方法是把costs按照costs[i][0] - costs[i][1]的差值从小到大排序,然后前面一半的人去A,后面一半的人去B。至于为什么这样做,我也说不上来,感觉。

    代码如下:

    class Solution(object):
        def twoCitySchedCost(self, costs):
            """
            :type costs: List[List[int]]
            :rtype: int
            """        
            def cmpf(item1,item2):
                d1 = item1[0] - item1[1]
                d2 = item2[0] - item2[1]
                return d1 - d2
    
            costs.sort(cmp=cmpf)
            res = 0
            for i in range(len(costs)):
                if i < len(costs)/2:
                    res += costs[i][0]
                else:
                    res += costs[i][1]
            #print costs
            return res
  • 相关阅读:
    CodeForces 7B
    CodeForces 4D
    离散化
    线段树入门
    洛谷 P3951 小凯的疑惑(赛瓦维斯特定理)
    Codeforces 1295D Same GCDs (欧拉函数)
    Codeforces 1295C Obtain The String (二分)
    Codeforces 1295B Infinite Prefixes
    Codeforces 1295A Display The Number(思维)
    Codeforces 1294F Three Paths on a Tree(树的直径,思维)
  • 原文地址:https://www.cnblogs.com/seyjs/p/10765564.html
Copyright © 2011-2022 走看看