
leetcode周赛
文章平均质量分 89
lizju
求关注
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
[力扣] 第90场双周赛 回顾
力扣第90场双周赛解题报告原创 2022-11-02 10:51:48 · 365 阅读 · 0 评论 -
[Leetcode/Python3] 第214场周赛 (Rank 97 / 9769)
P1. 获取生成数组中的最大值给你一个整数 njie jjj 。按下述规则生成一个长度为 n + 1 的数组 nums :nums[0] = 0nums[1] = 1当 2 <= 2 * i <= n 时,nums[2 * i] = nums[i]当 2 <= 2 * i + 1 <= n 时,nums[2 * i + 1] = nums[i] + nums[i + 1]返回生成数组 nums 中的 最大 值。class Solution: def getMax原创 2020-11-10 11:22:34 · 253 阅读 · 1 评论 -
[Leetcode/Python3] 第208场周赛
P1 文件夹操作日志搜集器每当用户执行变更文件夹操作时,LeetCode 文件系统都会保存一条日志记录。下面给出对变更操作的说明:“…/” :移动到当前文件夹的父文件夹。如果已经在主文件夹下,则 继续停留在当前文件夹 。“./” :继续停留在当前文件夹。“x/” :移动到名为 x 的子文件夹中。题目数据 保证总是存在文件夹 x 。给你一个字符串列表 logs ,其中 logs[i] 是用户在 ith 步执行的操作。文件系统启动时位于主文件夹,然后执行 logs 中的操作。执行完所有变更文件夹原创 2020-09-27 16:49:56 · 178 阅读 · 0 评论 -
LCP Fall Team 2020
LCP 22. 黑白方格画小扣注意到秋日市集上有一个创作黑白方格画的摊位。摊主给每个顾客提供一个固定在墙上的白色画板,画板不能转动。画板上有 n * n 的网格。绘画规则为,小扣可以选择任意多行以及任意多列的格子涂成黑色,所选行数、列数均可为 0。小扣希望最终的成品上需要有 k 个黑色格子,请返回小扣共有多少种涂色方案。注意:两个方案中任意一个相同位置的格子颜色不同,就视为不同的方案。解剩余的面积为n2−kn^2-kn2−k, 把行和列都往上和左移动, 得到矩形如下:------------原创 2020-09-23 15:24:22 · 477 阅读 · 0 评论 -
[Leetcode/python3] 第207场周赛
P1 重新排列单词间的空格给你一个字符串 text ,该字符串由若干被空格包围的单词组成。每个单词由一个或者多个小写英文字母组成,并且两个单词之间至少存在一个空格。题目测试用例保证 text 至少包含一个单词 。请你重新排列空格,使每对相邻单词之间的空格数目都 相等 ,并尽可能 最大化 该数目。如果不能重新平均分配所有空格,请 将多余的空格放置在字符串末尾 ,这也意味着返回的字符串应当与原 text 字符串的长度相等。返回 重新排列空格后的字符串 。Solutionclass Solution:原创 2020-09-20 20:28:15 · 241 阅读 · 0 评论 -
[Leetcode/c++] 第206场周赛
P1 二进制矩阵中的特殊位置给你一个大小为 rows x cols 的矩阵 mat,其中 mat[i][j] 是 0 或 1,请返回 矩阵 mat 中特殊位置的数目 。特殊位置 定义:如果 mat[i][j] == 1 并且第 i 行和第 j 列中的所有其他元素均为 0(行和列的下标均 从 0 开始 ),则位置 (i, j) 被称为特殊位置。暴力#include <bits/stdc++.h>#include <unordered_map>#include <uno原创 2020-09-14 12:28:03 · 331 阅读 · 0 评论 -
[LeetCode/Python] LCCUP 20 参赛题解
P1 速算机器人小扣在秋日市集发现了一款速算机器人。店家对机器人说出两个数字(记作 x 和 y),请小扣说出计算指令:“A” 运算:使 x = 2 * x + y;“B” 运算:使 y = 2 * y + x。在本次游戏中,店家说出的数字为 x = 1 和 y = 0,小扣说出的计算指令记作仅由大写字母 A、B 组成的字符串 s,字符串中字符的顺序表示计算顺序,请返回最终 x 与 y 的和为多少。模拟(AC)class Solution: def calculate(self, s: s原创 2020-09-14 10:09:51 · 591 阅读 · 0 评论 -
[Python3] 力扣第205场周赛 题解
P1. 替换所有的问号 显示英文描述给你一个仅包含小写英文字母和 ‘?’ 字符的字符串 s ,请你将所有的 ‘?’ 转换为若干小写字母,使最终的字符串不包含任何 连续重复 的字符。注意:你 不能 修改非 ‘?’ 字符。题目测试用例保证 除 ‘?’ 字符 之外,不存在连续重复的字符。在完成所有转换(可能无需转换)后返回最终的字符串。如果有多个解决方案,请返回其中任何一个。可以证明,在给定的约束条件下,答案总是存在的。解:“x?y"=>"xzy"“x?y" => "xzy"“x?y"原创 2020-09-06 14:13:58 · 375 阅读 · 0 评论 -
[Leetcode/Python3] 第204场周赛题解
P1 重复至少 K 次且长度为 M 的模式给你一个正整数数组 arr,请你找出一个长度为 m 且在数组中至少重复 k 次的模式。模式 是由一个或多个值组成的子数组(连续的子序列),连续 重复多次但 不重叠 。 模式由其长度和重复次数定义。如果数组中存在至少重复 k 次且长度为 m 的模式,则返回 true ,否则返回 false 。解:数组不支持hash,转化为字符串就好了class Solution: def containsPattern(self, arr: List[int原创 2020-08-31 01:10:47 · 6011 阅读 · 0 评论 -
[Leetcode/python3]第203场周赛题解
P1 圆形赛道上经过次数最多的扇区给你一个整数 n 和一个整数数组 rounds 。有一条圆形赛道由 n 个扇区组成,扇区编号从 1 到 n 。现将在这条赛道上举办一场马拉松比赛,该马拉松全程由 m 个阶段组成。其中,第 i 个阶段将会从扇区 rounds[i - 1] 开始,到扇区 rounds[i] 结束。举例来说,第 1 阶段从 rounds[0] 开始,到 rounds[1] 结束。请你以数组形式返回经过次数最多的那几个扇区,按扇区编号 升序 排列。注意,赛道按扇区编号升序逆时针形成一个圆(请原创 2020-08-25 06:48:52 · 6046 阅读 · 0 评论 -
[Leetcode/python] 第33场双周赛
千位分隔数给你一个整数 n,请你每隔三位添加点(即 “.” 符号)作为千位分隔符,并将结果以字符串格式返回。’解: 打卡题。 WA了三次- -点好写成了逗号数位不对前导零处理class Solution: def thousandSeparator(self, n: int) -> str: ret = "" def f(x): if len(x) < 3: return "0"*原创 2020-08-23 00:00:15 · 1369 阅读 · 2 评论 -
[Leetcode/python3] 第202场周赛题解
P1 存在连续三个奇数的数组class Solution: def threeConsecutiveOdds(self, arr: List[int]) -> bool: cur = 0 for x in arr: cur = (x & 1) * (cur + (x & 1)) if cur == 3: return True return Fal原创 2020-08-16 15:46:55 · 6045 阅读 · 0 评论 -
[Leetcode]第197场周赛
第197场周比赛入口 https://leetcode-cn.com/contest/weekly-contest-197/Number of Good Pairsfrom collections import Counter as Cclass Solution: def numIdenticalPairs(self, nums): def f(x): return x*(x-1) // 2 return sum(map(f, [n for a, n in原创 2020-07-14 12:56:55 · 245 阅读 · 0 评论 -
[LeetCode] 第193场周赛
P3给你一个整数数组 bloomDay,以及两个整数 m 和 k 。现需要制作 m 束花。制作花束时,需要使用花园中 相邻的 k 朵花 。花园中有 n 朵花,第 i 朵花会在 bloomDay[i] 时盛开,恰好 可以用于 一束 花中。请你返回从花园中摘 m 束花需要等待的最少的天数。如果不能摘到 m 束花则返回 -1 。解题思路:第一个想法是用dp记录以第i多花作为最后一个选择的花构成一束花,所需要要的虽少时间. 但是,我需要超过O(mn)O(mn)O(mn)的时间。很显然,超时了看到数据原创 2020-06-14 12:08:21 · 146 阅读 · 0 评论 -
[LeetCode] 第28场双周赛
P3给你一个整数数组 arr 和一个整数值 target 。请你在 arr 中找 两个互不重叠的子数组 且它们的和都等于 target 。可能会有多种方案,请你返回满足要求的两个子数组长度和的 最小值 。请返回满足要求的最小长度和,如果无法找到这样的两个子数组,请返回 -1 。解题思路:我们会解一个子数组和的长度最小问题。如何计算两个不想交子数组的长度和最小呢?假设,我们在i的位置发现从k到i的和满足条件,这时候如果我们知道位置k左侧满足条件的子数组长度是多少解决了到iii时的问题。那么,不难原创 2020-06-14 02:25:14 · 283 阅读 · 0 评论 -
Leetcode 第192场周赛
P1 重新排列数组 显示英文描述给你一个数组 nums ,数组中有 2n 个元素,按 [x1,x2,…,xn,y1,y2,…,yn] 的格式排列。请你将数组按 [x1,y1,x2,y2,…,xn,yn] 格式重新排列,返回重排后的数组。示例 1:输入:nums = [2,5,1,3,4,7], n = 3输出:[2,3,5,4,1,7]解释:由于 x1=2, x2=5, x3=1, y1=3, y2=4, y3=7 ,所以答案为 [2,3,5,4,1,7]示例 2:输入:nums = [原创 2020-06-07 12:05:30 · 239 阅读 · 0 评论 -
力扣周赛191场
周赛小结P1, P2 送分题。P3,只要理解图的性质等同于送分题。P4注意到数据大小后,基本也是简单题。P1. 数组中两元素的最大乘积给你一个整数数组 nums,请你选择数组的两个不同下标 i 和 j,使 (nums[i]-1)*(nums[j]-1) 取得最大值。请你计算并返回该式的最大值。class Solution: def maxProduct(self, A: List[int]) -> int: n,ret = len(A), 0 for原创 2020-05-31 13:51:22 · 247 阅读 · 0 评论 -
Leetcode 第190场周赛
都是简单题。主要看基础函数的熟练度,手速快不快。给你一个字符串 sentence 作为句子并指定检索词为 searchWord ,其中句子由若干用 单个空格 分隔的单词组成。请你检查检索词 searchWord 是否为句子 sentence 中任意单词的前缀。如果 searchWord 是某一个单词的前缀,则返回句子 sentence 中该单词所对应的下标(下标从 1 开始)。如果 searchWord 是多个单词的前缀,则返回匹配的第一个单词的下标(最小下标)。如果 searchWord 不是任原创 2020-05-24 13:56:27 · 222 阅读 · 0 评论 -
力扣周赛189
题目连接:link这次周赛质量有点差。1到3题,我没发现考点,就是理解题目,直接翻译成代码就可以了。而第四题,考的是计算几何,网上有类似的题目,还有源代码。还就是下次比赛应该会用python3写了。 因为scala在做竞赛题时,会出现MLE,优化会浪费很多时间。代码:class Solution: def busyStudent(self, s: List[int], e: List[int], q: int) -> int: return sum([1 for a,原创 2020-05-20 14:47:06 · 242 阅读 · 0 评论 -
[LeetCode/Scala] 第188场周赛
P1:用栈操作构建数组给你一个目标数组 target 和一个整数 n。每次迭代,需要从 list = {1,2,3…, n} 中依序读取一个数字。请使用下述操作来构建目标数组 target :Push:从 list 中读取一个新元素, 并将其推入数组中。Pop:删除数组中的最后一个元素。如果目标数组构建完成,就停止读取更多元素。题目数据保证目标数组严格递增,并且只包含 1 到 n 之间的数字。请返回构建目标数组所用的操作序列。题目数据保证答案是唯一的。点评: 这道题是通过栈来描述的,原创 2020-05-10 14:19:08 · 276 阅读 · 0 评论 -
[LeetCode/Scala] 第187场周赛总结
这次周赛题目比较简单,就贴一下code。 比赛时,后面两道题要用的二分搜索包bisect, 因为python自带,就直接上python了。 今天,自己实现了一下bisect这个包的几个函数,能做到log(n)log(n)log(n)的插入和搜索,不过insort的不是insort_right一: Bisect的scala实现, 用了ArrayBuffer, 以后可能会写成更通用的。看后面竞赛题,...原创 2020-05-04 17:25:45 · 212 阅读 · 0 评论 -
LeetCode 第186场周赛
周赛小结P1:可以统计总的0,1个数,然后从左往右扫,就可以了。看了下数据比较小,就写的很暴力。from collections import Counter as Cclass Solution: def maxScore(self, s: str) -> int: n, ret = len(s),0 for i in range(n): ...原创 2020-04-26 12:12:02 · 192 阅读 · 0 评论