LeetCode笔记:Weekly Contest 317

1. 题目一

给出题目一的试题链接如下:

1. 解题思路

这一题其实就是找出数组当中所有6的倍数,然后对他们求平均即可。

2. 代码实现

给出python代码实现如下:

class Solution:
    def averageValue(self, nums: List[int]) -> int:
        s, n = 0, 0
        for i in nums:
            if i % 6 == 0:
                s += i
                n += 1
        return s // n if n != 0 else 0

提交代码评测得到:耗时189ms,占用内存14.2MB。

2. 题目二

给出题目二的试题链接如下:

1. 解题思路

这一题同样比较直接,将每一个用户的总视频观看次数和其最小字典序的最大观看视频存储下来然后返回出最大值即可。

2. 代码实现

给出python代码实现如下:

class Solution:
    def mostPopularCreator(self, creators: List[str], ids: List[str], views: List[int]) -> List[List[str]]:
        popularity = defaultdict(int)
        videos = {}
        for p, idx, v in zip(creators, ids, views):
            popularity[p] += v
            if p in videos:
                if v > videos[p][1]:
                    videos[p] = (idx, v)
                elif v == videos[p][1] and idx < videos[p][0]:
                    videos[p] = (idx, v)
            else:
                videos[p] = (idx, v)
        _max = max(popularity.values())
        res = []
        for p, v in popularity.items():
            if v == _max:
                res.append([p, videos[p][0]])
        return res

提交代码评测得到:耗时3527ms,占用内存60.5MB。

3. 题目三

给出题目三的试题链接如下:

1. 解题思路

这一题就是从最后一位开始,不断向上凑整到0,直到所有位的总和不大于target,然后看一下一共加了多少即可。

2. 代码实现

给出python代码实现如下:

class Solution:
    def makeIntegerBeautiful(self, n: int, target: int) -> int:
        digits = []
        while n != 0:
            digits.insert(0, n % 10)
            n = n // 10
        res = 0
        flag = 1
        while sum(digits) > target:
            d = digits.pop()
            if d != 0:
                res += (10 - d) * flag
                r, i = 1, len(digits)-1
                while r != 0 and i >= 0:
                    nr = (digits[i] + r) // 10
                    digits[i] = (digits[i] + r) % 10
                    r = nr
                    i -= 1
                if r != 0:
                    digits.insert(0, r)
            flag *= 10
        return res

提交代码评测得到:耗时45ms,占用内存13.9MB。

4. 题目四

给出题目四的试题链接如下:

这一题感觉其实可以做的,不过实在是扛不住了,回北京,晚上的车次被取消了,被迫带着口罩10个小时的火车,现在人基本就是个活死人状态,实在是搞不动了……

而且最坑的是,我从一个几乎没有任何疫情的地方回到北京,然后被要求居家7天,然后北京日增十几例,就很无语……

想到明天要拿着我的小破电脑居家办公就头大,唉,匿了匿了,早点休息下吧,否则真怕我要无语死了……

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值