算法面试通关札记 01-训练指南 - 极客时间 【系列】

693 阅读1分钟

算法与数据结构是程序员基本功,但是入门着实不易,在极客时间找了一门非常适合新手人们入门的课程,一遍学习一遍记录,方便日后查看。编程语言选用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

本系列仅是个人学习笔记,并未包括所有教程内容,如有侵权请联系删除。 极客时间链接

下一篇: 线性表