个人情况:目前是刚毕业已离校,接触算法大概是研二的时候(2021年1月)正式开始在力扣刷题,在此之前是写过一点点的语法题,没有过算法竞赛系统学习的相关经历,现在想起来也不知道之前都在干嘛😂,大部分时间都浑浑噩噩的过去了。
当初刷题也是为了秋招的笔试&面试,后来有段时间也沉迷于周赛的上分中,但那个时候还很菜,第一次拿到Knight徽章的时候高兴了一星期,现在的话就是佛系上分,有空了就打一打,掉分or上分都是随缘了,只要有进步就好~
现在对于算法的学习也是怀着谦虚求知和好奇心去学习的,没有很卷,毕竟的我的提交记录和各位大佬比起来还相差甚远😅(因为平常里自己确实是个懒人还是个拖延症晚期,一个被DDL驱赶着前行的懒虫),
希望以后能有所改进(下次一定)。


今天是2022年7月9日,恰巧发现自己的刷题量刚好到达了1500题,来力扣的时间大概也有一年零七个月了,从最开始的只会一点点编程语言的语法到现在取得的一些小小的进步,感觉时间过的还蛮快的,刚开始来力扣大概是2021年1月的时候,刚好那个月的打卡题都是并查集,所以我学会的第一个数据结构就是并查集了,当时2021年1月31日的题目是839. 相似字符串组,做完那道题还留了一个小小的足迹。(2021-01-31)

至此从2021年1月1日到现在每天都会登陆力扣,比较忙的情况下就只做做每日一题打个卡,有空的情况下就会去补周赛的题目,保持自己的头脑不会过于愚钝。
关于刷题的初衷应该和大部分为了找工作,参加秋招、春招的同学一样,都是为了能在笔试或者面试中不会表现的太差。我也是从零开始的,所以如果有刚来力扣且没什么刷题经验的同学看到这篇文章的时候,请听听我的一些小小建议(仅针对刚来力扣刷题并且没有什么基础的同学能在有效的时间里能多刷到一些面试可能会出现的高频题)
std::vector<T>时会因为不加引用&导致超时;再比如std::string的substr()函数并非是O(1)的,因此在估算时空复杂度的时候也应当考虑全面,请勿忽略API的开销。tag先刷一类题,比如按照数组、链表、二叉树、回溯……的顺序,每个类别按照2简单、3中等、1困难的比例去熟悉一下做题技巧和方法,然后再回头去做。如果以上两个专题都没啥太大问题了,可以试试《剑指offer》(专项突击版)和 题号为前300的题目;OJ(Online Judge)对C/C++语言的时间要求都在1s或者2s,Java语言一般是C++的2倍,Python等语言时间会更宽松。针对C++而言,1s的时间评测机大概能跑1e7~1e8左右的数据量,所以会计算时间复杂度对能不能通过题目是一个很好的引导。1e5,那么我们可以判定这道题的时间复杂度需要控制再O(n)或者O(nlogn)的级别,因此可以判断出这道题可能是O(n)的DP,可能是双指针或者是二分答案等等等等等,只要控制在合理的运算范围内,就可以排除掉一些不可能的算法实现,引导自己朝着正确的方向去思考。暴力、DFS、回溯,如果数据范围很小,假设只有10~20以内,那么可以考虑如此暴力的做法。如果给你1e5的数据范围,必然是不可以用暴力的方法去做的,所以数据范围是一个很好的启示,也能避免去写一大堆不可能AC题目的代码,从而提高刷题、做题的效率。下面是我力扣周赛艰难的上分曲线,2021年之前参加过几次是为了签到拿积分😂,那个时候只会第一题签到且不知道任何算法。后面偶然的机会结识了一些志同道合的小伙伴,拉了一个小小的群聊叫未来成功人士交流群,「此处应该表扬群主真会起名字,哈哈哈哈哈哈希望未来都能是成功人士」,跟着他们学到了很多,也给了我很大的帮助,在他们的影响下,然后就是开始慢慢上分的阶段了,可以看到在每个阶段(对应的颜色区域内)都会徘徊好一阵才能进步,毕竟也是个小白在慢慢爬,和各路OI、ACM竞赛大佬是没法比的,始终是难以望其项背,毕竟一场周赛就上Knight / Guardian的大佬比比皆是。(此处省略一万字的膜拜%%%)


关于周赛上分之前看过的一篇帖子是悟空大@王悟空2021年11月27日写的,如何在Leetcode达到2400分,截止目前悟空的竞赛积分最高分是2700+,这里我贴出当时的经验贴链接希望可以帮助到更多的同学。
kuangbin专题,这个网上一搜就有,题目都比较经典。大概刷了其中的搜索、图论、最短路、数据结构、并查集、最小生成树、线段树、基础DP、数论基础、字符串等比较基础且容易搞定的专题,比较难的专题和一些进阶的算法也是抽空了就会去看看,在这期间也是边打周赛边去刷专题,同时力扣的每日一题也是按部就班,每日都会按时做题打卡,然后周赛成绩就有了一些进步。Luogu或者其他OJ上找对应的题单练习加深巩固一下自己的题库,下次碰到的话争取拿下。


【力扣的题单和题解分类】:(https://www.acoier.com/tags/)
【力扣周赛预测网站】:https://lcpredictor.herokuapp.com/
【力扣周赛题目难度】:https://zerotrac.github.io/leetcode_problem_rating/
附一些学习中经常去参考的Github链接:
首先非常感谢力扣 (LeetCode)这个平台和社区工作者,营造了一个良好的刷题氛围,其次也感谢很多题解作者的无私奉献和持续输出,不论是每日一题还是力扣的周赛题解,都会有非常好的题解给读者们学习和参考(此处应该艾特一下平常看的最多的两位题解作者宫水三叶, 灵茶山艾府 , 从两位作者的题解中确实学到了很多,真心感谢~)。与此同时在力扣刷题的这些阶段里,我也很幸运的在2022秋招中收获了很多大厂的offer,之后我也会写一篇关于自己秋招的经验分享,希望可以帮助到更多的同学。
在力扣的这一年多时间里我也收获了很多知识和朋友,让我看到了他(她)们独特并且非常优秀一面,同时也激励着我要不断地进步,在此非常感谢他们。我也希望每一位在力扣刷题的朋友们都能开心Coding,心想事成,Rating++ && Offer++。