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
  • 相关阅读:
    CSS 兼容性调试技巧
    CSS 常用的兼容性调试技巧
    全局CSS设置
    CSS 盒子模型
    CSS表格属性
    HTML引入CSS的方法
    CSS 定位
    CSS display overflow 属性 cursor光标类型
    CSS 继承和优先级
    沟通表达
  • 原文地址:https://www.cnblogs.com/seyjs/p/10765564.html
Copyright © 2011-2022 走看看