首页 > 其他 > 详细

LeetCode Start

时间:2020-08-27 21:39:25      阅读:109      评论:0      收藏:0      [点我收藏+]

由于想要提升自己的编程技巧和算法基础,为将来找工作做准备,所以现在开始每天至少刷一道题,请组织上监督我!

1. 如何高效地在LeetCode上面刷题

1.1 先用伪代码写出逻辑,再补全小段代码

力扣上面的Easy题分为两种,一种是不需要算法逻辑,只需要按照题目描述敲代码即可;另一种是套用标准算法即可。

其中第一类的Easy题,我们就可以采用先用伪代码写出逻辑,再补全小段代码。

方法:贪心
思路:首先假设使所有的人都去B面试,那么B处就多出了N个人, 此时需要选出N个人到达A处面试,这种方式对应的代价是cost_A - cost_B,这个值可正可负。因此我们需要选出对cost_A-cost_B进行排序,选出N个送到A。

例如 2020.08.27[001] 两地调度 问题:

class Solution:
    def twoCitySchedCost(self, costs):
        # Sort by a gain which company has 
        # by sending a person to city A and not to city B
      
        
  
        # To optimize the company expenses,
        # send the first n persons to the city A
        # and the others to the city B

补全后的代码为:

class Solution:
    def twoCitySchedCost(self, costs):
        # Sort by a gain which company has 
        # by sending a person to city A and not to city B
        costs.sort(key = lambda x : x[0] - x[1])
        
        total = 0
        n = len(costs) // 2
        # To optimize the company expenses,
        # send the first n persons to the city A
        # and the others to the city B
        for i in range(n):
            total += costs[i][0] + costs[i + n][1]
        return total

补充关于List的小语法:

list.sort(cmp=None, key=None, reverse=False)

  • cmp -- 可选参数, 如果指定了该参数会使用该参数的方法进行排序。
  • key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定 可迭代对象中的一个元素来进行排序。
  • reverse -- 排序规则,reverse = True 降序, reverse = False 升序(默认)。

LeetCode Start

原文:https://www.cnblogs.com/idella/p/13573983.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!