LeetCode比赛
LeetCode算法比赛
Mikchy
一名在校学生,喜爱编程,希望自己的理解可以帮助到其他人,同时也希望可以结交到朋友
展开
-
LeetCode第193场周赛(Weekly Contest 193)解题报告
Nice,兄滴们,第一次进入前 100,可喜可贺,继续努力吧,奥力给第一题:前缀和第二题:排序 + 贪心第三题:二分第四题:树上倍增 + DP详细题解如下。1.一维数组的动态和 AC代码(C++)2.不同整数的最少数目 AC代码(C++)3.制作 m 束花所需的最少天数 AC代码(C++)4.树节点的第 K 个祖先 AC代码(C++)LeetCode第 193场周赛地址:https:...原创 2020-06-15 16:09:23 · 406 阅读 · 0 评论 -
LeetCode第192场周赛(Weekly Contest 192)解题报告
这周日校庆,庆祝工大 100 岁。去参加校庆活动了,补题发现不难,特别最后一题,就是常规的 DP 问题。第一题:模拟第二题:滑动窗口。第三题:DFS。第四题:动态规划 DP,有两种状态假设方法。详细题解如下。1.检查单词是否为句中其他单词的前缀 AC代码(手动实现字符串分割 C++) AC代码(利用stringstream进行分割 C++)2.定长子串中元音的最大数目 AC代码(C++)3.二叉树中...原创 2020-06-08 19:13:40 · 278 阅读 · 0 评论 -
LeetCode第190场周赛(Weekly Contest 190)解题报告
周日收拾行李,准备返校,就没时间参加了,听说是手速题,还是挺简单的,最后一题两种假设 DP 状态的方法,第一种方法笔记简单,容易想到。第二种方法,如果做过类似的题目,比如 LeetCode 上的第 72 题 “编辑距离”,那就很好做了。第一题:字符串分割 + 模拟(手动分割 或者 C++ stringstream 分割)。第二题:滑动窗口。第三题:DFS。第四题:动态规划 DP,有两种状态假设方法。详细题解如下。1.检查单词是否为句中其他单词的前缀 AC代码(...原创 2020-05-27 00:01:31 · 366 阅读 · 0 评论 -
LeetCode第26场双周赛(Biweekly Contest 26)解题报告
双周赛补题,总体不难,最后一题的 DP,暴力DP也是可以卡着时间过的,不过还是有优化的DP计算。第一题:模拟。第二题:模拟 + 最大公约数 gcd。第三题:树的 DFS。第四题:暴力DP 或者 优化后DP。详细题解如下。1.连续字符 AC代码(C++)2.最简分数 AC代码(C++)3.统计二叉树中好节点的数目 AC代码(C++)4.数位成本和为目标值的最大数字 AC代码(方法一、暴力DP...原创 2020-05-18 11:06:51 · 283 阅读 · 0 评论 -
LeetCode第189场周赛(Weekly Contest 189)解题报告
最后一题,难度是真滴大,计算几何的问题,具体公式是百度的,不过赛后自己也推导,同时也看了大佬们的公式,然后用一个比较简单的方式进行讲解第一题:模拟。第二题:字符串排序。第三题:暴力。第四题:计算几何。详细题解如下。1.在既定时间做作业的学生人数 AC代码(C++)2.重新排列句子中的单词 AC代码(C++)3.收藏清单 AC代码(C++)4.圆形靶内的最大飞镖数量 AC代码(C++)Le...原创 2020-05-17 23:07:00 · 527 阅读 · 0 评论 -
LeetCode第188场周赛(Weekly Contest 188)解题报告
就差那么一分钟,哎,第四题思路和第一名大佬一样,但是思维 + 手速,还要继续努力呀,奥里给第一题:模拟。第二题:异或前缀和+ 暴力枚举 O(n ^ 3) 或者 异或前缀和 + 优化 O(n ^ 2) 或者 异或前缀和 + 再优化 O(n)。第三题:树的遍历。第四题:动态规划 DP。详细题解如下。1.旅行终点站 AC代码(C++)2.是否所有 1 都至少相隔 k 个元素 AC代码(C++)3.绝对差不超过限制的最长连续子数组 ...原创 2020-05-11 13:30:45 · 620 阅读 · 0 评论 -
LeetCode第187场周赛(Weekly Contest 187)解题报告
差点又要掉分了,还好最后几分钟的时候,绝杀 AK。干巴爹!!!第一题:思路 + 模拟暴力。第二题:线性扫描。第三题:双指针(滑动窗口) + 优先队列。第四题:暴力每一行最小 k 个 + 优先队列 或者 二分。详细题解如下。1.旅行终点站 AC代码(C++)2.是否所有 1 都至少相隔 k 个元素 AC代码(C++)3.绝对差...原创 2020-05-04 23:10:14 · 401 阅读 · 0 评论 -
LeetCode第186场周赛(Weekly Contest 186)解题报告
今天周日,但是要补休,五一的。所以参赛人员少,而且题目也比较简单。第一题:枚举。第二题:滑动窗口 或者 前缀后缀和。第三题:模拟。第四题:贪心 或者 DP。详细题解如下。1.分割字符串的最大得分(Maximum Score after Splitting A String) AC代码(C++)2.可获得的最大点数(Maximum Points Y...原创 2020-04-26 17:25:28 · 448 阅读 · 0 评论 -
LeetCode第24场双周赛(Biweekly Contest 24)解题报告
依旧晚上没做,后面的才来补题的,听说很简单。第一题:模拟。第二题:贪心 + 暴力枚举。第三题:思维 + 倒退。第四题:DP。详细题解如下。1.逐步求和得到正数的最小值(Minimum Value to Get Positive Step by Step Sum) AC代码(C++)2.和为 K 的最少斐波那契数字数目(Find the Minimu...原创 2020-04-23 15:47:16 · 496 阅读 · 0 评论 -
【算法比赛】2020 力扣杯!Code Your Future 春季全国编程大赛
这个比赛,除了最后一题,其他四题其实没啥难度。第一题:字符串操作。第二题:模拟。第三题:分析。第四题:DP。详细题解如下。1.重新格式化字符串(Reformat the String) AC代码(C++)2.点菜展示表(Display Table of Food Orders in A Restaurant) AC代码(C+...原创 2020-04-22 22:50:46 · 1816 阅读 · 3 评论 -
LeetCode第185场周赛(Weekly Contest 185)解题报告
这周的周赛,总体不难,主要是第二题,实现有点麻烦,写的有点久,菜鸡呀,看了一些前面大佬的代码,是真的简洁。最后一题,就是一个简单的 DP 问题,达不到 hard 的难度。第一题:字符串操作。第二题:模拟。第三题:分析。第四题:DP。详细题解如下。1.重新格式化字符串(Reformat the String) AC代码(C++)2.点菜展示表(Di...原创 2020-04-22 15:19:32 · 370 阅读 · 0 评论 -
LeetCode第184场周赛(Weekly Contest 184)解题报告
这周的周赛,出乎意料的容易,特别是前三题,几乎都是easy题目了(特别第三题,如果会 python,超简单,但是我不会,所以还是手动写了匹配)。手速场,手速场,然鹅我脑子转得慢,而且敲代码还慢,可怜。第一题:字符串查找。第二题:模拟。第三题:字符串替换。第四题:DP + 状压。详细题解如下。1.数组中的字符串匹配(String Matching in An Array)...原创 2020-04-12 15:44:19 · 454 阅读 · 0 评论 -
LeetCode第23场双周赛(Biweekly Contest 23)解题报告
这周的双周赛没做,但补了题,发现其实不难,挺简单的。第一题:模拟。第二题:构造。第三题:计算几何。第四题:DP 或者 贪心。详细题解如下。目录1.统计最大组的数目(Count Largest Group)题目链接题意解题思路AC代码(C++)2.构造 K 个回文字符串(Construct K Palindrome Strings)题目链接...原创 2020-04-06 11:43:27 · 411 阅读 · 0 评论 -
LeetCode第183场周赛(Weekly Contest 183)解题报告
我是一个菜鸡,最后一题想到可能用DP,但还是不会做,继续加油吧!!!第一题:排序。第二题:模拟。第三题:模拟 + 思维。第四题:博弈 + DP。详细题解如下。1.找出数组中的幸运数(Find Lucky Integer In An Array) AC代码(方法一、排序 + 暴力枚举 C++) AC代码(方法二、计数统计 C++)...原创 2020-04-05 21:28:09 · 416 阅读 · 0 评论 -
LeetCode第182场周赛(Weekly Contest 182)解题报告
哇,大声哭了出来,最后一题也太难了把,KMP + DP,我KMP都木有学,扎心了。第一题:排序 + 暴力模拟 或者 计数统计。第二题:暴力模拟 或者 优化一下。第三题:模拟 + map 的使用。第四题:KMP + DP。详细题解如下。1.找出数组中的幸运数(Find Lucky Integer In An Array) AC代码(方法一、排序 + 暴力枚...原创 2020-03-29 14:17:10 · 509 阅读 · 0 评论 -
LeetCode第181场周赛(Weekly Contest 181)解题报告
哟哟哟,新一轮的周赛,切克闹。第一题:暴力模拟。第二题:模拟。第三题:BFS。第四题:字符串哈希。详细题解如下。1.生成每种字符都是奇数个的字符串(Generate A String With Characters That Have Odd Counts) AC代码(C++)2.灯泡开关 III(Bulb Switcher III) ...原创 2020-03-22 17:35:22 · 372 阅读 · 0 评论 -
LeetCode第180场周赛(Weekly Contest 180)解题报告
哎,我也太菜了。第一题:模拟 + 构造。第二题:思维。第三题:树的遍历 DFS 或者 BFS。第四题:树的遍历 DFS。详细题解如下。1.生成每种字符都是奇数个的字符串(Generate A String With Characters That Have Odd Counts) AC代码(C++)2.灯泡开关 III(Bulb Switch...原创 2020-03-17 17:17:53 · 324 阅读 · 0 评论 -
LeetCode第179场周赛(Weekly Contest 179)解题报告
这周虽然AK了,但感觉不太满意,其实题目都不难,脑袋不清醒,不然可以更快,再接再厉吧。第一题:模拟 + 构造。第二题:思维。第三题:DFS 或者 BFS。第四题:DFS。详细题解如下。1.有多少小于当前数字的数字(How Many Numbers Are Smaller Than The Current Number) AC代码(方法一、暴力枚举 C...原创 2020-03-08 15:53:47 · 486 阅读 · 2 评论 -
LeetCode第178场周赛(Weekly Contest 178)解题报告
这周状态不错,AK了,可喜可贺。但还是速度慢,同时代码实现能力还需要继续加强。加油吧,骚年。比赛重要的是速度,而不是最优解,要注意,和平时自己刷题不同,自己刷题,重点是要考虑多种解法,找出最优解。但是比赛的时候,只要在时间复杂度允许的情况下,暴力是最快的。第一题:暴力枚举 或者 哈希表 + 排序。第二题:排序(重写 cmp 排序依据)。第三题:树的DFS。第四题:0 / 1 最...原创 2020-03-01 13:57:22 · 430 阅读 · 0 评论 -
LeetCode第177场周赛(Weekly Contest 177)解题报告
这周周日的周赛,大家强的离谱,一堆人AK,完了完了,掉分之旅。最后一题主要是思维题,即分析好情况,其实很容易解决,奈何等我有想法的时候,已经快要结束没时间写代码了,蓝瘦。第一题:模拟(调用函数库?)。第二题:DFS 或者 并查集。第三题:暴力枚举。第四题:思维 + 贪心。详细题解如下。1.日期之间隔几天(Number Of Days Between Two Dates)...原创 2020-02-23 16:31:29 · 614 阅读 · 0 评论 -
LeetCode第20场双周赛(Biweekly Contest 20)解题报告
哦吼吼,AK的双周赛,总体来说还是简单的,主要思路要跟得上,先做的第四题,才回来做第三题,第三题卡了很一会儿,还是有点可惜(其实是得了便宜还卖乖,哈哈哈第一题:排序。第二题:模拟。第三题:双指针。第四题:组合数学。详细题解如下。1.根据数字二进制下 1 的数目排序(Sort Integers By The Number of 1 Bits) AC代...原创 2020-02-23 13:33:55 · 478 阅读 · 0 评论 -
LeetCode第176场周赛(Weekly Contest 176)解题报告
又是一周掉分之旅,我发现,LeetCode周赛的数据好水,所以有的时候,实在没思路,先暴力解决试试(即使分析出时间复杂度会超时),比如第二题和第三题都可以暴力通过,GG思密达。这周主要使用了数据结构中的:优先队列。即当我们动态改变一个数组的值,同时每一次都想知道其中的最大值(或者最小值),那么可以考虑使用 优先队列。其存取的时间复杂度是 O(logN),N 是优先队列中的个数。第一题:暴力...原创 2020-02-16 16:31:41 · 475 阅读 · 0 评论 -
LeetCode第175场周赛(Weekly Contest 175)解题报告
第一题:模拟。第二题:思维。第三题:模拟。第四题:动态规划 DP。详细题解如下。1.检查整数及其两倍数是否存在(Check If N And Its Double Exist) AC代码(C++)2.制造字母异位词的最小步骤数(Minimum Number of Steps to Make Two Strings Anagram) ...原创 2020-02-12 16:24:08 · 453 阅读 · 0 评论 -
LeetCode第19场双周赛(Biweekly Contest 19)解题报告
这周的双周赛总体简单,主要是最后一题有些难度。第一题:模拟。第二题:滑动窗口。第三题:数学。第四题:0 / 1 最短路(BFS)。详细题解如下。1.将数字变成 0 的操作次数(Number of Steps to Reduce A Number to Zero) AC代码(C++)2.大小为 K 且平均值大于等于阈值的子数组数目(Numbe...原创 2020-02-11 17:42:38 · 394 阅读 · 0 评论 -
LeetCode第173场周赛(Weekly Contest 173)解题报告
第一题:分析好题目,示例3的解释是一个陷阱。第二题:模拟。第三题:最短路。第四题:动态规划 DP。详细题解如下。1.删除回文子序列(Remove Palindromic Subsequences) AC代码(C++)2.餐厅过滤器(Filter Restaurants By Vegan Friendly Price And Distance) ...原创 2020-02-02 21:27:41 · 397 阅读 · 0 评论 -
LeetCode第174场周赛(Weekly Contest 174)解题报告
可惜,差 7 分钟就可以AK了,这周的题目其实算简单的。自己对二叉树的还不够熟悉,在第三题卡了挺久的,主要是二叉树递归还带返回值,这类型的题目做的不多,经验还是太少。排名:301 / 1659。第一题:模拟 + 排序。第二题:贪心。第三题:二叉树处理。第四题:动态规划 DP。详细题解如下。1.方阵中战斗力最弱的 K 行(The K Weakest Rows In A Mat...原创 2020-02-02 17:07:44 · 505 阅读 · 0 评论 -
LeetCode第18场双周赛(Biweekly Contest 18)解题报告
大年初一的双周赛,没啥人参加,虽然做了三题,159名,但是总人数少,感觉又是掉分的一周,哭泣泣。第一题:模拟。第二题:模拟。第三题:模拟。第四题:最大曼哈顿距离。详细题解如下。1.数组序号转换(Rank Transform of AnArray) AC代码(C++)2.破坏回文串(Break A Palindrome) ...原创 2020-01-26 23:44:12 · 569 阅读 · 0 评论 -
LeetCode第172场周赛(Weekly Contest 172)解题报告
回家傻一天。在家做的第一场周赛,早上起来懵逼了一上午,最后惨不忍睹。晚上在写题解的时候,重新看题,思路清晰,反应快速。然而....,哇,掉分了。第一题:模拟。第二题:模拟。第三题:树的操作。第四题:贪心 或者 动态规划 DP。详细题解如下。1.6 和 9 组成的最大数字(Maximum 69 Number) AC代码(C++)2.竖直打印单词(P...原创 2020-01-19 22:40:42 · 446 阅读 · 0 评论 -
LeetCode第171场周赛(Weekly Contest 171)解题报告
前三题依旧没啥难度,第四题用动态规划,有点难度。第一题:模拟。第二题:位运算。第三题:连通块(并查集 或者 DFS)。第四题:动态规划 DP。详细题解如下。1.将整数转换为两个无零整数的和(Convert Integer Tothe Sum of Two No Zero Integers) AC代码(C++)2.或运算的最小翻转次数(Minim...原创 2020-01-16 11:05:04 · 412 阅读 · 0 评论 -
LeetCode第17场双周赛(Biweekly Contest 17)解题报告
哟,周日回家,所以这周的双周赛和周赛都没参加,默默补题。前三题挺简单的,第四题据说暴力可以过,但是我试了C++的暴力好像不行,但是Java好像可以。最后学习了“字符串Hash”,用于做第四题。第一题:模拟。第二题:二维前缀和。第三题:二叉树遍历DFS。第四题:字符串Hash。详细题解如下。1.解压缩编码列表(Decompress Run Length Encoded Li...原创 2020-01-16 00:04:07 · 248 阅读 · 0 评论 -
LeetCode第170场周赛(Weekly Contest 170)解题报告
庆祝我的第一次AK,哟哟哟,以为可以挤进前100,但是大佬还是多呀。主要是第二题的map处理之后,不知道要怎么排序,所以卡了挺久的,可怜。周赛排名:145/ 1648第一题:模拟。第二题:前缀 + 异或。第三题:BFS + map + 排序。第四题:动态规划 DP。详细题解如下。1.解码字母到整数映射(Decrypt String From Alphabet to I...原创 2020-01-05 12:07:13 · 418 阅读 · 0 评论 -
LeetCode第16场双周赛(Biweekly Contest 16)解题报告
双周赛掉分之旅,周六晚上第三题,DFS或者BFS都可以,我用了BFS,结果超内存,检查半天不知道哪里出错了,心态爆炸,名次很差,可怜呀。排名:459 / 822。不过好像双周赛掉分也不算多,掉了 6 分,可能是我分本来也不高吧,哈哈哈。第一题:模拟。第二题:二分。第三题:DFS 或者 BFS。第四题:动态规划DP。详细题解如下。1.将每个元素替换为右侧最大元素(Rep...原创 2019-12-31 11:07:55 · 286 阅读 · 0 评论 -
LeetCode第169场周赛(Weekly Contest 169)解题报告
这周的周赛还行,20分钟内做完了前三题,但是最后一题,想着是暴力,但是没有预处理,导致超时了。赛后参考了他人的思路,明白自己的思路没错,只是没经过优化。周赛排名:129 / 1567,还行,挤进了前 10 %,头一天晚上双周赛掉的分应该涨回来了,哈哈哈。第一题:题意模拟,构造相反数。第二题:DFS遍历存储两颗树的所有值,再进行排序。第三题:DFS或者BFS都可以。第四题:预处理...原创 2019-12-30 16:42:37 · 497 阅读 · 0 评论 -
LeetCode第168场周赛(Weekly Contest 168)解题报告
感觉这周的周赛没有什么具体的算法,都是按照题意来模拟就解决了,主要用到了C++ STL中的map。第一题:按题意模拟,求某个数的有几位。第二题:按题意模拟,利用了map。第三题:按题意模拟,枚举所有出现的字串,求出出现最多次的字串次数,或者深入理解题意,使用滑动窗口。第四题:按题意模拟,从盒子或者钥匙两方面枚举。详细题解如下。1.统计位数为偶数的数字(Find Numbe...原创 2019-12-24 21:59:19 · 384 阅读 · 0 评论 -
LeetCode第167场周赛(Weekly Contest 167)解题报告
第一次双周赛和周赛都参加,可惜这次周赛也没AK,做出3题,不过居然进了前150,也是一个进步吧。最后一题的迷宫,DFS或者BFS,但是数据大,所以一般用BFS,但是我不会,尴尬了。。。。第一题:链表的使用。第二题:打表或者枚举。第三题:二维前缀和。第四题:BFS的迷宫问题。详细题解如下。1.二进制链表转整数(Convert Binary Number in A Link...原创 2019-12-17 11:06:04 · 311 阅读 · 0 评论 -
LeetCode第15场双周赛(Biweekly Contest 15)解题报告
第一次参加双周赛,不愧是双周赛的简单,本来可以 AK 的,但是第三题理解了很久,不过最后还是想出了怎么做,开shang。第一题:暴力模拟。第二题:暴力枚举或者先排序再枚举。第三题:DFS。第四题:动态规划DP。详细题解如下。1.有序数组中出现次数超过25%的元素(Element Appearing More Than 25 in Sorted Array) ...原创 2019-12-16 11:28:52 · 322 阅读 · 0 评论 -
LeetCode第166场周赛(Weekly Contest 166)解题报告
第一题:简单题,按题意模拟即可。第二题:遍历枚举。第三题:二分。第四题:二进制枚举所有变动情况,找出最小变动次数。详细题解如下。1.整数的各位积和之差(Subtract the Product and Sum of Digits of An Integer) AC代码(C++)2.用户分组(Group the People Given the G...原创 2019-12-09 13:18:50 · 263 阅读 · 0 评论 -
LeetCode第165场周赛(Weekly Contest 165)解题报告
这周周赛,又果断错过了,周一考驾照科三,周日就过去考场模拟,幸运的是,终于拿到驾照了,开shan。第一题:暴力模拟。第二题:简单的二元一次方程组求解,当然也可以暴力枚举,时间复杂度可以过。第三题:暴力枚举(理论分析本来应该超时的,但没超时,应该是数据问题),或者动态规划DP。第四题:动态规划DP。详细题解如下。1.找出井字棋的获胜者(Find Winner on A Ti...原创 2019-12-04 22:47:03 · 382 阅读 · 0 评论 -
LeetCode第164场周赛(Weekly Contest 164)解题报告
可怜,疯狂掉分,再也不随便提前报名周赛了。这周的周赛,本来已经报名好了,但临时有事无法参加,同时我又忘记我报名了,导致掉分,心疼自己一波。详细题解如下。1.访问所有点的最小时间(Minimum Time Visiting All Points) AC代码(C++)2.统计参与通信的服务器(Count Servers that Communicate)...原创 2019-11-27 10:48:05 · 410 阅读 · 0 评论 -
LeetCode第163场周赛(Weekly Contest 163)解题报告
这周的周赛,时间冲突,所以是后面补的题目。第一题,直接按题目的意思进行模拟,时间复杂度过得去第二题,二叉树,DFS第三题,动态规划问题第四题,BFS详细题解如下。1.二维网格迁移(Shift 2d Grid) AC代码(C++)2.在受污染的二叉树中查找元素(Find Elements in A Contaminated Binary Tr...原创 2019-11-25 20:25:31 · 334 阅读 · 0 评论