Captain's Geek-Island Captain's Geek-Island
首页
生活如斯乎
架构师的路
  • 分类
  • 标签
  • 归档
沉洋官网 (opens new window)

SleepyOcean

走,找新大陆去
首页
生活如斯乎
架构师的路
  • 分类
  • 标签
  • 归档
沉洋官网 (opens new window)
  • 计算机基础

    • 算法与数据结构 - 总览
      • 1. 数据结构
      • 2. 算法
      • 3. 方法论
      • 4. 时间和空间复杂性
      • 5. 解决思想
    • 算法与数据结构 - 链表
    • 算法与数据结构 - 树
    • 算法与数据结构 - 图
    • 算法与数据结构 - 排序算法
    • 算法与数据结构 - 动态规划
    • 算法与数据结构 - 刷题集
    • 网络 - 基础
    • 网络 - TCP
    • Java - 核心知识
    • Java - 集合
    • Java - IO流
  • 并发专题

  • 性能调优专题

  • 工具专题

  • 源码框架专题

  • 设计模式

  • 分布式专题

  • 实战专题

  • 技术杂文

  • 云原生专题

  • 大数据分析专题

  • 前端专题

  • 运维专题

  • 经验专题

  • 面试专题

  • 软实力专题

  • 架构师的路
  • 计算机基础
SleepyOcean
2021-01-29

算法与数据结构 - 总览

# 1. 数据结构

一维

  • 基础:数组 array(string),链表 linked list
  • 高级:栈 stack,队列 queue,双端队列 deque,集合 set,映射 map(hash or map),etc

二维

  • 基础:树 tree,图 graph
  • 高级:二叉搜索树 binary search tree(red-black tree,AVL),堆 heap,并查集 disjoint set,字典树 Trie,etc

特殊

  • 位运算 Bitwise,布隆过滤器 BloomFilter
  • LRU Cache

# 2. 算法

基础

  • 条件判断:if-else, switch -> branch
  • 迭代循环:for, while loop -> iteration
  • 递归:Recursion(Divide & Conquer, Backtrace)

高级

  • 搜索 Search:深度优先搜索 Depth first search,广度优先搜索 Breadth first search,A*,etc
  • 动态规划 Dynamic Programming
  • 二分查找 Binary Search
  • 贪心 Greedy
  • 数学 Math,几何 Geometry

# 3. 方法论

职业训练

  • 拆分知识点
  • 刻意练习
  • 反馈

切题四件套

  • Clarification 明确题目
  • Possible solutions 寻求多种解法,找出最优解
    • compare(time/space)比较
    • optimal 优化
  • Coding 刻意练习
  • Test cases 测试用例,有始有终

五毒神掌

第一遍

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

第二遍

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

第三遍

  • 过一天后,再重复做题
  • 不同解法的熟练程度 -> 专项练习

第四遍

  • 过了一周,反复回来练习相同题目

第五遍

  • 面试前一周恢复性训练

第三遍的时候就可以看一看leetcode国际站的Discuss中Most Vote前三回答,学习先进思路,会有很大帮助

# 4. 时间和空间复杂性

时间复杂度: Big O notation

  • O(1): Constant Complexity 常数
  • O(log n): Logarithmic Complexity 对数
  • O(n): Linear Complexity 线性
  • O(n^2): N square Complexity 平方
  • O(n^3): N square Complexity 立方
  • O(2^n): Exponential Growth 指数
  • O(n!): Factorial 阶乘

注意: 只看最高复杂度的运算

复杂度分析方式:Master Theorem 主定理

# 5. 解决思想

核心思想: 升维 和 空间换时间

解题思路

  • 最近子问题
#数据结构基础
上次更新: 2021/03/25, 04:03:00

算法与数据结构 - 链表 →

新鲜出炉
01
记录 - 快速搭建自动化部署平台
04-13
02
Docker搭建各类Paas服务
03-01
03
系统配置 - Android TV配置
02-12
更多文章>
Copyright © 2019-2022 SleepyOcean | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式