算法与数据结构是程序员基本功,但是入门着实不易,在极客时间找了一门非常适合新手人们入门的课程,一遍学习一遍记录,方便日后查看。编程语言选用Swift,并针对技术点丰富了一些感想和随笔。
Github的算法Repo包括了所有的系列札记,同时还有本人刷leetcode、《剑指offer》的历程。如果你感兴趣,可以去看看。Go to Github
01-训练指南
如何进行算法攻坚
-
切碎知识(庖丁解牛+知识脉络)-> 刻意练习(练习不舒服,不爽,枯燥的部分)-> 获得反馈(及时反馈,多看其他人代码,相互比较)
-
切题四件套
- 明确题目
- 所有可能解法
- coding
- testing
算法复杂度
O(1)->O(n)->O(logn)-O(n.logn)->O(n^2)->O(2^n)->O(n!)
算法数据结构总概
常见算法时间复杂度
- 二叉查找 - O(logn)
- 二叉树遍历 - O(n),每个节点遍历一次,仅遍历一次。
- 二维矩阵 - O(n)
- 斐波拉契 - O(2^n)
- 快排、归并排序等 - O(n.logn)
leetcode使用
3分学,7分练
- 刻意练习:缺陷、弱点地方、不舒服、不爽、枯燥的地方。
- 训练切题四件套:分析、所有的可能、写代码、测试。
- 注重时间/空间复杂度
- 合适的IDE
本系列仅是个人学习笔记,并未包括所有教程内容,如有侵权请联系删除。 极客时间链接