
文科专业需要用python处理数据,学了一些python的基本语法,想来力扣加强一下代码能力,顺便打一下周赛。最初可以说是漏洞百出,比如建立一个二维列表,[[0] * m] * n发现结果怎么都不对,也找不到bug在哪,才知道得写作[[0] * m for _ in range(n)],类似的错误可以说太多了,极其折磨,不过过了这个阶段就顺风顺水了。
由于我几年前有一些C++基础(现在忘得差不多了),学过一些基础的算法和数据结构,上Knight感觉比较容易,基本会了语法,了解一些数据结构就可以上,但是名次经常400-900徘徊,差不多就停留在了2000分。那么我是如何突破到瓜店的呢?这里向大家推荐一个力扣的学习计划题单,即动态规划的基础和进阶。

众所周知,力扣的T3 T4 DP是常客,而这个题单囊括了力扣常见的DP套路,只要独立完成,苦思冥想一道题想1-2h是常态,实在不会就看题解,然后隔几天再写写。逆序对和状压DP给我留下了深刻的印象,这不只是的一个题型或者算法,学会后感觉思维都获得了显著的提升。
如果遇到一些题型总是做不出来,可以打开灵神的题单如何高效刷题。

灵神贡献了各个知识点的相关题目整理,以及众多高质量的题解。我的数位DP就是完全跟着灵神学习的,对于数位DP薄弱的同学也可以B站搜索数位DP,前排就有灵神的视频。
坦白来讲我会的也并不多,如二分图匹配,马拉车,KMP与Z函数(一看就会,不用就忘,我至少学过3次)基本都不太会(尽管类似题目肯定也AC过,但是现在让我写估计能写几小时),有很多容器也不太会用,比如有序列表(一些题目可以作弊般的简化),我基本掌握的算法有以下这些,我觉得这些足够在力扣上瓜。
设计类题目就是数据结构全家桶,只有灵活掌握各种数据结构才能AC。算法方面,我主要学了以下这些。
可以看到,我并不会任何比较难的算法,但是要上瓜要学的还是比较杂的,常用的数据结构和算法还是得过一遍,在掌握基础前,不用在意分数。
总体来讲,灵神题单只要吃透(我没有全刷,大家可以针对自己弱项刷,节约时间),虚拟周赛个20场,找到弱项,相信大家都是可以上瓜的,目前我的分数肯定有水分,因为有些语法和容器不会用时有问ChatGPT,尽管我不会的题目他从来没帮我做出来过,我会的题目让他写他也写不对,但是在编码过程中,他还是能帮助我不少。加强代码能力,尽量不依赖板子、搜索引擎、帮助文件、ChatGPT才可以做到独立闭卷完成周赛。
不要太在意分数,更要注重从周赛中发现自己的短板,这样即使在下分,在能力上却上分。可以尝试一些困难题教ChatGPT做,教会他做出一道困难有时候比自己做还要难很多,只有把困难题拆分成若干道简单题,并且清晰描述实现的逻辑和细节,才可以让GPT做出来,这个过程可以让我们思路更清晰,而不是瞎写一通面向错误用例编码。我尝试了一些大厂的笔试面试题目,大部分时候可以AK,尽管我不转码,但是开始挺开心的。刷力扣从功利角度来讲没多大用,收获就是可以看到AC这种即时反馈带来的快乐吧。