为什么要刷题?
- 提高个人竞争力,当前互联网、银行、量化对冲等公司的开发岗位都会要求进行代码测试
- 提高代码编写速度,减少工作开发时间,增加个人可支配时间
- 锻炼个人思维、提高解决问题的能力、丰富建模问题的角度
对自己的要求
- 基础:面试够用即可,不需要打到codeforces红名、达到竞赛水平
- 进阶:在leetcode周赛国榜、全球榜上进入前1000
来自于灵神—灵茶山艾府的刷题思路
- 偶尔三题的选手
- 属于基础的算法类型没完全掌握的
- 按分数段来做负重训练,100分为一段
- 假如自己的分数是2000,找到自己的弱项,做难度为自己当前 rating+200 的相关题目。
- 多做构造题能有效提高自己的思维水平(开脑洞的能力),从而更快地找到切题入口。(构造题即 constructive algorithms,可以通过 problemset 页面右侧的 Filter Problems 来搜索)
- 大多数时候,思考 10 分钟没有思路可以直接看题解。这是因为如果你思考 10 分钟没有思路,可能是有一个概念不知道,或者有一个观察错过了。在你训练的过程中,最好是解决更多的问题,积累更多的解题技巧。
- 题量很重要
- 1000题、2000题、3000题是一个门槛
按分类刷题
做题的时候不要显示tag
构造题
登陆codeforce网站
- 按分数筛选题目1500-1500,按过题人数递减排序,看看自己做的轻不轻松
- if 轻松,继续加100分
- else,往下减100分
多看看大佬,给点压力
- 灵茶山艾府 https://codeforces.com/profile/0x3F
- 一只粗糙的疯子 https://leetcode.cn/u/yi-zhi-cu-cao-de-feng-zi/
- zackwu https://leetcode.com/izackwu/
在github homepage上加上leetcode的数据:https://github.com/JacobLinCool/LeetCode-Stats-Card?tab=readme-ov-file
- 如何科学上分 https://www.bilibili.com/read/cv22332590/?spm_id_from=333.999.0.0 灵茶山艾府
- CodeForces 怎么上分? - 灵茶山艾府的回答 - 知乎 https://www.zhihu.com/question/353734418/answer/2353160035
- 力扣竞赛题目打分网站 https://huxulm.github.io/lc-rating/#/zen
- 算法竞赛模板库 by 灵茶山艾府 https://github.com/EndlessCheng/codeforces-go?tab=readme-ov-file