做题目的:

  • 获得 offer
  • 巩固算法与数据结构知识,将学到的东西用出来

    如何做题:

根据章节与难度来做。

比如你学了 linked list,就去找到标签为 linked list 的题目,然后根据 "Acceptance" 排序,由高到低解题

题目不会做:

使用 word 记录下错题和需要注意的题。

思考为什么不会做:

边界条件没考虑到?题目理解错误? --》记录下

这个概念没有把握清楚?没有弄懂算法的意思? --》回去翻书,看资料

不要追求速度,回顾你的目的是什么 –--- 弄懂题目用到的知识。

不停练习,直到你能快速且正确地写出小的代码片段。没有任何理由用自己喜欢的语言写不出一个双循环。找一些带有例子的小的代码智力题,你能在一分钟以内理解这些问题。对这类问题做成百上千遍的练习(不仅仅是几十遍,切记!)。

为课本上的每个算法写一个用例列表。一个共同的错误就是仅仅记住计算复杂度表。但是看一些算法的使用例子,例如 A*搜索在哪些地方使用,这比学习代码本身要有用的多。

至少做一个能逼迫你使用与工作相关的接口/用例的大型项目。语言通常不是很重要,而且独自写一个大型工程能够强迫你去学新的设计模式以及远离遗留代码维护。代码面试是智利测试。所以它们很少关注具体的体系。

04-17 04:05