# 复杂度计算

# 时间复杂度

  • 代码设计

# 空间复杂度

  • 数据结构的选择

# 规则

  • 与常数无关 n 和 2n
  • 相加选高的 n^2 + n
  • 1代表与个数无关

# 优化

  1. 暴力解法
  2. 剔除无效计算和无效存储
  3. 降低复杂度

# 降低时间复杂度

  • 递归
  • 二分法
  • 排序算法
  • 动态规划
  • 时间转移到空间

# 降低空间复杂度

  • 选择合适的数据结构
  • 空间转时间

# 权衡

效率第一 空间一般是廉价的 十字路口建立交桥