第一次参加周赛,AC了三道题,也算不错的成绩了,从现在开始每周的周赛我都会参加并且复盘,有兴趣的小伙伴可以一起讨论。

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

class Solution:def divideString(self, s: str, k: int, fill: str) -> List[str]:a, b = divmod(len(s), k)ans = []temp = ''now = 0for _ in range(a):temp = s[now:now+k]now = now + kans.append(temp)if b != 0:temp = s[now:] + fill * (k-b)ans.append(temp)return ans

简单的字符串操作题,将字符串以每 k 个为一组加入到列表即可,最后一组如果不够 k 个则用 fill 字符来补满,更简洁的写法如下:

class Solution:def divideString(self, s: str, k: int, fill: str) -> List[str]:n = len(s)if n % k != 0:s += fill * (k - n % k)return [s[t:t+k] for t in range(0, len(s), k)]

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

class Solution:def minMoves(self, target: int, maxDoubles: int) -> int:ans = 0while maxDoubles and target > 1:# 如果是偶数就直接除以2if target % 2 == 0:target = target // 2maxDoubles -= 1ans += 1# 如果是奇数就除以2再减1else:target = (target-1) // 2maxDoubles -= 1ans += 2ans += target - 1return ans

目标是以最少次数从 1 得到 target,由于基数越大的时候加倍带来的收益越高,所以加倍操作一定是放在后面的。反过来想,要从 target 得到 1 ,就是先除以2了(加倍的逆操作),由于有的数除以 2 可能得到奇数,想继续除下去的话就得减 1,所以要判断下奇偶。

5982. 解决智力问题

class Solution:def mostPoints(self, questions: List[List[int]]) -> int:n = len(questions)memo = dict()temp = 0memo[n-1] = questions[n-1][0]for i in range(n-2, -1, -1):# 如果当前位置跳过 questions[i][1] 之后还有题目if i + questions[i][1] + 1 in memo:memo[i] = max(memo[i + questions[i][1] + 1] + questions[i][0], memo[i+1])# 当前位置跳过 questions[i][1] 之后没有题目else:memo[i] = max(questions[i][0], memo[i+1])return  max(memo.values())

这题看着就像动态规划的题目,但是从前往后推不可行,因为根本不知道第 i 题对应的最大分数 memo[i] 是从哪一道题转移过来的,写不了转移方程。然而反过来想,用 memo[i] 可以表示第 i 题到最后一题中的最大分数,这样就可以从后往前,不断记录下当前位置(及其后面所有位置)的最大分数。

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

class Solution:def maxRunTime(self, n: int, batteries: List[int]) -> int:batteries.sort(reverse=True)s = sum(batteries)for b in batteries:if b > s // n:n -= 1s -= belse:return s // n

电池的容量可能不同,则所有电池会存在一个平均值,这是最理想的情况(例如 [10, 1, 1] 的电池给两台电脑用,可以用 6 min),但是这得让 10 容量的电池同时连接两(多)台电脑。然而,一个电池最多只能连接一台电脑。

对于那些超过平均值的电池,它们可以分给一台电脑从头用到尾,所以不考虑这个电脑,也不考虑这个电池。

当最大的电池都小于等于平均值,说明此时的平均值是不需要最大的电池连接多台电脑也可以达到的,即为答案。

Leetcode周赛复盘——第 276 场力扣周赛相关推荐

  1. Leetcode周赛复盘——第 278 场力扣周赛

    5993. 将找到的值乘以 2 我的做法是将数组从小到大排序之后,再将找到的值乘以2: class Solution:def findFinalValue(self, nums: List[int], ...

  2. Leetcode周赛复盘——第 71 场力扣双周赛与第 279 场力扣周赛

    双周赛: 5984. 拆分数位后四位数字的最小和 class Solution:def minimumSum(self, num: int) -> int:a, b, c, d = sorted ...

  3. LeetCode 第 58 场力扣夜喵双周赛(动态规划、马拉车算法,前后缀处理)/ 第 253 场力扣周赛(贪心,LIS)

    第 58 场力扣夜喵双周赛 两道600多 5193. 删除字符使字符串变好 题目描述 一个字符串如果没有 三个连续 相同字符,那么它就是一个 好字符串 . 给你一个字符串 s ,请你从 s 删除 最少 ...

  4. 第 304 场力扣周赛

    1.Introduction 平常做代码题目较少,今天迟迟不能入睡,我思考了下,确实有很大概率,对十年内做的目标,有很大可能不能实现.于是做了几道题勉强让自己心安.一边喝着牛栏山壮精神,一边写Leet ...

  5. 第 256 场力扣周赛(状态压缩+dp,二进制子序列的动规、940)

    第 256 场力扣周赛 有事没做,来看一下题 5854. 学生分数的最小差值 题目描述 给你一个 下标从 0 开始 的整数数组 nums ,其中 nums[i] 表示第 i 名学生的分数.另给你一个整 ...

  6. 第 254 场力扣周赛(KMP、贪心、快速幂、二分+多源bfs、并查集 + 时光倒流)

    第 254 场力扣周赛 稀里糊涂双眼双眼惺忪的做了三道,错了4次...还是600来名 5843. 作为子字符串出现在单词中的字符串数目 题目描述 给你一个字符串数组 patterns 和一个字符串 w ...

  7. 第 270 场力扣周赛

    第一百一十二天 --- 第 270 场力扣周赛 题目一 思路:直接模拟 细节 代码 附加 题目二 思路 细节 代码 题目一 力扣:2094. 找出 3 位偶数 思路:直接模拟 1.因为构造所有三位数, ...

  8. 第 321 场力扣周赛

    第 321 场力扣周赛 T1 求和 class Solution { public:int pivotInteger(int n) {int sum=(1+n)*n/2;int cnt=0;for(i ...

  9. LeetCode第 57 场力扣夜喵双周赛(差分数组、单调栈) and 第 251 场力扣周赛(状态压缩动规,树的序列化,树哈希,字典树)

    LeetCode第 57 场力扣夜喵双周赛 离knight勋章越来越近,不过水平没有丝毫涨进 1941. 检查是否所有字符出现次数相同 题目描述 给你一个字符串 s ,如果 s 是一个 好 字符串,请 ...

最新文章

  1. Docker compose 容器编排
  2. ppt 简单动画制作
  3. 博文视点大讲堂35期-It's Android Time:程序员创富有道! 圆满结束
  4. 更新整理本人全部博文中提供的代码与工具(Java,2014.09)
  5. kill -HUP 什么意思?
  6. 奇怪的Adobe dynamic link
  7. 电信无线路由器服务器网站,电信拨号上网连无线路由器的方法
  8. 创建型模式之简单工厂模式
  9. 天眼查企业工商信息查询接口
  10. Anaconda Clean命令
  11. 嵌入式面试全攻略,记我的一次校招
  12. 宏碁服务器u盘装系统,宏基笔记本用u盘装系统操作流程
  13. 口碑最好的国产蓝牙耳机,2021国产最好用的蓝牙耳机
  14. 《如果……》拉迪亚德·吉卜林
  15. 单元格等于计算机日期,《excel表格怎样自动填写日期》 Excel单元格中自动获取当前日期与时间...
  16. 淘汰国足后反被附体?伊朗0:3不敌日本无缘决赛
  17. linux上好玩的东西
  18. 见识知名企业五花八门的福利
  19. 基于LabVIEW+python实现车牌识别智能系统的设计
  20. linux打开网络摄像头失败,Opencv没有检测到linux上的firewire网络摄像头

热门文章

  1. Js 枚举定义Layer Icon
  2. [转]Android 常见安全漏洞修复理论与实践
  3. C#趣味程序---百鸡百钱
  4. 【C语言简单说】十一:switch 补
  5. java获取map数量_java – 如何从HashMap或LinkedHashMap获取有限数量的值?
  6. 安卓效率微商_微商人脉通app下载-微商人脉通 安卓版v2.5.5-PC6安卓网
  7. jq取第一个子元素为select_【转】jquery如何获取第一个或最后一个子元素?
  8. python编程发展_编程的发展史及Python简介
  9. 第4章 字符串和格式化输入/输出
  10. BBC又一神作,豆瓣9.8分,美轮美奂的大自然不仅仅属于人类