虽然刷题一直饱受诟病,不过不可否认刷题确实能锻炼我们的编程能力,相信每个认真刷题的人都会有体会。现在提供在线编程评测的平台有很多,比较有名的有 hihocoder,LintCode,以及这里我们关注的 LeetCode。
LeetCode 是一个非常棒的 OJ(Online Judge)平台,收集了许多公司的面试题目。相对其他 OJ 平台而言,有着下面的几个优点:
- 题目全部来自业内大公司的真实面试
- 不用处理输入输出,精力全放在解决具体问题上
- 题目有丰富的讨论,可以参考别人的思路
- 精确了解自己代码在所有提交代码中运行效率的排名
- 支持多种主流语言:C/C++,Python, Java
- 可以在线进行测试,方便调试
下面是LeetCode的使用经验:
1. LeetCode的题库越来越大,截止到目前,已经有321个问题了。对于大多数人来说,没有时间也没有必要把所有题目都做一遍(时间充裕可以随意)。刷个100题左右应该就差不多了(可以考虑序号为前100多的题目,相对更经典一点)。
2. 从AC率高的开始做,难度从简单->中等,先不要做困难的。
3. 可以按照下文的面试出题频率顺序来做,从频率最高的一批开始。
4. 尽量不使用IDE,直接在平台上写代码。
5. 不要看标签,不要看标签,不要看标签。标签相当于问题的分类,看了标签就会往那个方向去想,不利于自主思考。
6. 写好代码先不要提交,人工检查一下代码,比如分号是否都有写,return