Skip to content

TDCQZD/Algorithms

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Algorithms

为什什么要学习算法与数据结构

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

Data Structure

  • Array
  • Stack / Queue
  • PriorityQueue
  • LinkedList
  • Queue / Priority queue
  • Stack
  • Tree / Binary Search Tree
  • HashTable
  • Disjoint Set
  • Trie
  • BloomFilter
  • LRU Cache

Algorithm

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

System Design

  • System architecture overview
  • Design+ scalability + flexibility
  • Typical system design questions

面试切题四件套

  • Clarification(询问题目细节、边界条件、可能的极端错误情况)
  • Possible solutions(所有可能的解法都和面试官沟通一遍)
    • Compare Time & Space Complexity (时间复杂度&空间复杂度)
    • Optimal Solution(最优解)
  • Coding (写代码)
  • Test cases (测试用例)

数据结构与算法学习书单

入门

  • 《大话数据结构》
  • 《算法图解》

特定编程语言的教科书

  • 《数据结构与算法分析 :C 语言描述》
  • 《数据结构与算法分析:C++ 描述》
  • 《数据结构与算法分析:Java 语言描述》
  • 《数据结构与算法 JavaScript 描述》
  • 《数据结构与算法:Python 语言描述》

面试必刷的宝典

  • 《剑指 offer》
  • 《编程珠玑》
  • 《编程之美》

经典书籍

  • 《算法导论》
  • 《算法》

殿堂级经典

  • 计算机程序设计艺术》

闲暇阅读

  • 《算法帝国》
  • 《数学之美》
  • 《算法之美》

精通一个领域

  • Chunk it up(切碎知识点)
    • 庖丁解牛
    • 脉络连接
  • Deliberate practicing(刻意练习)
  • Feedback(获得反馈)

个人学习方法

首先学习Data Structure,再专项练习Algorithm,最后LeetCode刷题。

  • Data Structure:
    • 理论
    • 面试题实战(切题四件套)
    • 模块化练习
  • Algorithm:
    • 复杂度分析
    • 模块化可以练习
  • Leetcode 刷题
  • 学习资料
    • LeetCode
    • 相关书籍

About

数据结构和算法

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors