前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LeetCode笔记:Weekly Contest 317

LeetCode笔记:Weekly Contest 317

作者头像
codename_cys
发布2022-11-12 14:10:20
1600
发布2022-11-12 14:10:20
举报
文章被收录于专栏:我的充电站我的充电站

1. 题目一

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

1. 解题思路

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

2. 代码实现

给出python代码实现如下:

代码语言:javascript
复制
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代码实现如下:

代码语言:javascript
复制
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代码实现如下:

代码语言:javascript
复制
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天,然后北京日增十几例,就很无语……

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-10-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 题目一
    • 1. 解题思路
      • 2. 代码实现
      • 2. 题目二
        • 1. 解题思路
          • 2. 代码实现
          • 3. 题目三
            • 1. 解题思路
              • 2. 代码实现
              • 4. 题目四
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档