ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

LeetCode 第 276 场周赛总结

2022-01-16 14:02:16  阅读:150  来源: 互联网

标签:周赛 arr 276 int res questions LeetCode dp target


5980. 将字符串拆分为若干长度为 k 的组

这是我写的:
执行用时: 36 ms,内存消耗: 15 MB
思路:直接按长度求余即可。

class Solution:
    def divideString(self, s: str, k: int, fill: str) -> List[str]:
        res = []
        n = len(s)
        num, mod = n // k, n % k
        for i in range(num):
            res.append(s[i*k:(i+1)*k])
        if mod != 0:
            fil = s[num*k:]
            fil += fill * (k - len(fil))
            res.append(fil)
        return res

5194. 得到目标值的最少行动次数

我写的:
执行用时: 28 ms,内存消耗: 15 MB
思路:不能除的时候直接全部减掉即可。

class Solution:
    def minMoves(self, target: int, maxDoubles: int) -> int:
        res = 0
        while target > 1:
            if maxDoubles == 0:
                res += (target-1)
                break
            if target % 2 == 1:
                target -= 1
            else:
                target /= 2
                maxDoubles -= 1
            res += 1
        return int(res)

5982. 解决智力问题

咱写的:
执行用时: 244 ms,内存消耗: 45.5 MB
思路:直接套两层dp会超时,所以用premax记录当前位置能得到的的最高分,每次更新。

class Solution:
    def mostPoints(self, questions: List[List[int]]) -> int:
        n = len(questions)
        dp = [0] * n
        dp[0] = questions[0][0]
        arr = [0] * n
        premax, preindex = 0, 0
        if questions[0][1]+1 < n:
            arr[questions[0][1]+1] = questions[0][0]
            
        for i in range(1, n):
            premax = max(premax, arr[i])
            dp[i] = premax           
            dp[i] += questions[i][0]
            tmp = questions[i][1] + i + 1
            if tmp < n:
                arr[tmp] = max(arr[tmp], dp[i])
        return max(dp)

5983. 同时运行 N 台电脑的最长时间

大佬写的:执行用时: 108 ms,内存消耗: 25.2 MB
思路:超过平均值的,那些电池给一个电脑从头用到尾,所以不考虑这个电脑 也不考虑这个电池。当最大的都不够平均值,那么答案就是剩下的所有电池混用能够维持的最大时间。tqltql555我是废物

class Solution:
    def earliestFullBloom(self, plantTime: List[int], growTime:         		
    	batteries = sorted(batteries, reverse=True)
        sumt = sum(batteries)
        for t in batteries :
            if t > sumt // n :
                n -= 1
                sumt -= t
            else :
                return sumt // n

标签:周赛,arr,276,int,res,questions,LeetCode,dp,target
来源: https://blog.csdn.net/weixin_45725277/article/details/122522536

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有