数据结构和算法学习指南

Programs = Algorithm + Data Structures

注意:笔记中说的算法都是传统工程算法,非机器学习算法。

数据结构和算法是大部分非科班程序员的知识短板,特别是不仅满足于做CRUD boy的群体,好在通过学习和刷题来补正还是有可行性的。

刷leetcode机写代码很重要,而白板编程(戏称"手撕代码")也同样重要(大厂面试必备技能),平时要注意多锻炼相关能力,以免面试时不适应影响正常发挥。

成为优秀程序员的必要条件之一:可以根据应用场景选择最合适的算法。

学习推荐

零基础学习读物

1.算法图解
2.我的第一本算法书
3.啊哈!算法
4.大话数据结构
5.趣学算法(学完上面的做补充)

扫地僧推荐及点评

数据结构和算法(适合科班出身,有一定专业基础的朋友)

看老爷爷的课程吧。

书籍:算法第四版。(经典,Java语言实现)

视频:
https://www.coursera.org/learn/algorithms-part1
https://www.coursera.org/learn/algorithms-part2

碾压一切除了DP的面试问题

还有算法导论(网易公开课有免费视频)这个使用伪代码的大部头,建议等有了一定算法基础再来阅读,不然容易被劝退😂。

学习辅助

让算法学习和理解更加直观。

算法修炼(内功)

  • Chunk it up (知识拆解)
  • Deliberate practicing (刻意练习)
  • Feedbacks (反馈)

刷题模版

Leetcode

大厂刷题必备,已有中文网站https://leetcode-cn.com/,部分题需要开会员才能刷。

leetcode刷题直达

LeetCode 探索

https://leetcode-cn.com/explore/

如果没有刷题的方向,那么最佳方式自然是针对自己的实际需求从 “LeetCode 探索 ” 选择合适的主题开始,因为这里有 LeetCode 题目编辑精挑细选整理过的高频面试题和专项突击。

会员刷题建议:

1.初期刷题免费版本够用,尽可能多刷一些,反复练习
2.校招、社招面试应聘突击时,开通会员强化练习刷题