算法学习入门(一)

算法学习入门(一)

推荐书籍:《异类:不一样的成功启示》

精通一个领域:

  • 切碎知识点
  • 刻意练习(五毒神掌,练习弱项)
  • 反馈
    • 主动反馈

数据结构

  • 一维:
    • 基础:数组array (String),链表 linked list
    • 高级:栈 stack, 队列 queue, 双端队列 deque, 集合 set , 映射 map(hash or map)
  • 二维:
    • 基础:数tree ,图 graph
    • 高级:二叉搜索树 binary search tree(red-black tree红黑树,AVL),堆 heep, 并查集 disjoint set,字典树 Trie
  • 特殊:
    • 位运算 Bitwise, 布隆过滤器 BloomFilter
    • LRU Cache缓存

算法

  • if-else,switch -->branch
  • for,while loop—>iteration
  • 递归 Recursion(Divide & Conquer, Backtrace)
  • 搜索 Search: 深度优先搜索(Depth first search) ,广度优先搜索(Breadth first search)
  • 动态规划 Dynamic Programming
  • 二分查找Binary Search
  • 贪心算法 Greedy
  • 数学 Math ,几何 Geometry

注意:刻意练习(五毒神掌)

切题四件套

  • 审题清晰
  • 想出可能的解法们
    • 比较,加强
  • 多写
  • 测试

五毒神掌

刷题第一遍

  • 5分钟:读题 + 思考
  • 直接看解法:注意!多解法,比较解法优劣。
  • 背诵,默写解法。

刷题第二遍

  • 马上自己写—>LeetCode提交
  • 多种解法比较,体会–>优化!

刷题第三遍

  • 一天之后,重复做原题。
  • 不同解法的熟练程度—>专项练习

刷题第四遍

  • 一个月之后,重复做原题。

刷题第五遍

  • 面试前一周恢复性训练

你可能感兴趣的:(算法)