溧阳城乡建设厅网站,无极app定制开发公司网站模板,工地模板多少钱一张,网页做网站的尺寸第一次参加周赛#xff0c;AC了三道题#xff0c;也算不错的成绩了#xff0c;从现在开始每周的周赛我都会参加并且复盘#xff0c;有兴趣的小伙伴可以一起讨论。
5980. 将字符串拆分为若干长度为 k 的组
class Solution:def divideString(self, s: str, k: int, fill: s…第一次参加周赛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:nowk]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:tk] 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[i1])# 当前位置跳过 questions[i][1] 之后没有题目else:memo[i] max(questions[i][0], memo[i1])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(reverseTrue)s sum(batteries)for b in batteries:if b s // n:n - 1s - belse:return s // n电池的容量可能不同则所有电池会存在一个平均值这是最理想的情况例如 [10, 1, 1] 的电池给两台电脑用可以用 6 min但是这得让 10 容量的电池同时连接两多台电脑。然而一个电池最多只能连接一台电脑。
对于那些超过平均值的电池它们可以分给一台电脑从头用到尾所以不考虑这个电脑也不考虑这个电池。
当最大的电池都小于等于平均值说明此时的平均值是不需要最大的电池连接多台电脑也可以达到的即为答案。