算法面试通关-简介《一》

为什么要掌握算法与数据结构

  1. 编程的内功修炼
  2. 去国内一流互联网公司的必要条件
  3. 硅谷互联网公司面试更是要求当场写算法题目
  4. 算法和数据结构是有趣且实用的

电话面试1
电话面试2

如何有效学习和训练算法和数据结构

精通一个领域

  • Chunk it up(切碎知识点)
  • Deliberate practicing(刻意练习)
    • 刻意练习
    • 练习缺陷、不舒服、弱点地方
    • 不爽、枯燥
  • Feedback(获得反馈)
    • 即时反馈
    • 主动型反馈(自己去找)
      • 高手代码(GitHub, LeetCode, etc.)
      • 第一视角直播
    • 被动式反馈(高手给你指点)
      • code review
      • 教练看你打,给你反馈

--Data Structure--
Array
Stack/Queue
PriorityQueue
LinkedList
Queue/Priority queue
Stack
Tree/Binary Search Tree
HashTable
Disjoin Set
Trie
BloomFilter
LRU Cache

--Algorithm--
Greedy
Recursion/Backtrace
Traversal
Breadth-first/Depth-first search
Didvide and Conquer
Dynamic ProgrammingBinary Search
Graph

--System Design--
SYstem architecture overview
Design+scalability+flexibility
Typical system design questions

复杂度

O(1): 常数复杂度
O(logn): 对数复杂度
O(n): 线性时间复杂度
O(n^2): N平方复杂度
O(n^3): N立方复杂度
O(2^n): 指数复杂度
O(n!): 阶乘复杂度

切题四件套

  • Clarification
  • Possible solutions
    • compare(time/space)
    • optional(加强)
  • Coding(多写)
  • Test cases

LeetCode

  • 做题
  • 时间复杂度
  • XCode

Feedback

  • Solutions from LeetCode
  • Discussion Panel in LeetCode

Master Theorem

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容