自己写的函数居然比python自带的快 神奇

力扣 621. 任务调度器
主要思想是对给定的列表求取出现次数最多的字母的次数是多少,以及有几个

使用python自带的函数

class Solution(object):
    def leastInterval(self, tasks, n):
        """
        :type tasks: List[str]
        :type n: int
        :rtype: int
        """
        freq = collections.Counter(tasks)

        # 最多的执行次数
        maxExec = max(freq.values())
        # 具有最多执行次数的任务数量
        maxCount = sum(1 for v in freq.values() if v == maxExec)

        return max((maxExec - 1) * (n + 1) + maxCount, len(tasks))

最后耗时:
在这里插入图片描述

使用自写自带的函数

def leastInterval(self, tasks, n):
    
    counts = {}
    for key in tasks:
        counts[key] = counts.get(key, 0) + 1

    max_num = 0
    num = 0
    for x in counts.values():
        if x > max_num:
            max_num = x
            num = 1
        elif x == max_num:
            num += 1

    lenth = (max_num - 1) * (n + 1) + num

    return max(len(tasks), lenth)

最后耗时:
在这里插入图片描述

神奇 各位看客可知道为什么???

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值