Here are my algorithm notes.
这里是我的算法笔记。
本人定位后端开发攻城狮,主要使用 PHP 语言进行开发,但是刷题用 Java 语言,一方面由于 PHP 自身的数据结构限制,另一方面则是 Java 的使用者众多,LeetCode 上不论官方还是大神题解,大多都是由 Java 编写。
算法题如同学生时代的试题,我们需要反复练习才能下笔如有神。
于我们程序猿来说一个很现实的问题就是面试需要,面试官在筛选人才的时候看重数据结构和算法分析的掌握,尤其是大厂。所以要过面试则必须刷题。还有个原因则是我希望能在技术这条路上走得更远,而不是别人眼中一年经验用三年的 API 熟练工。
计算机专业基础:数据结构和算法、计算机网络、操作系统、计算机组成原理,很遗憾不是科班出身,需要花更多时间自学。
刷题不是死记硬背,刷的多锻炼了我们的编程能力,对于日常代码的编写有莫大好处,会更多的考虑时间、空间复杂度,在代码简洁和易读间做更好的取舍。
- 数据结构的重要性
知乎、大神博客都分享了很多技巧方法,按标签刷等等。但是对于我这种非科班出身的,一开始接触的语言是 PHP 的(这里不是黑 PHP,PHP在 Web 应用开发独树一帜)。首先应该找一本数据结构的书,认真看懂并练习,因为算法跟数据结构是分不开的。了解了各种数据结构的特点,才能在刷题时选择最合适的进行解题。这里推荐一本书,在碎片时间当成小说看的 —— 「我的第一本算法书」 - 重剑无锋,大巧不工
只要刷的题够多,量够大,什么技巧都是浮云。 - 道理我都懂
我相信进入这个行业的,智商都在平均线以上,所以最难的还是一个词 —— 坚持。So,你够持久吗?