MatrixCQY
首页
数学笔记
代码笔记
金融笔记
GitHub
首页
数学笔记
代码笔记
金融笔记
GitHub
  • 代码笔记

    • 代码笔记
    • C++ 教程

      • C++ 基础教程
      • C++ 面向对象编程 (OOP)
      • C++ 标准模板库 (STL)
      • C++ 内存管理
      • C++ 文件操作
      • C++ Lambda 表达式
      • C++ 高级特性
    • 数据结构与算法

      • 数据结构与算法简介
      • 线性表 (Linear List)
      • 栈与队列 (Stack & Queue)
      • 哈希 (Hashing)
      • 树与图 (Tree & Graph)
      • 排序算法 (Sorting Algorithms)
      • 查找算法 (Searching Algorithms)
      • 动态规划 (Dynamic Programming)
      • 贪心算法 (Greedy Algorithms)
    • SQL 教程

      • SQL 基础教程
      • SQL 查询 (Queries)
      • SQL 连接 (Joins)
      • SQL 约束 (Constraints)
      • SQL 规范化 (Normalization)
      • 视图与存储过程
      • SQL 高级教程
    • R 语言教程

      • R 语言简介
      • R 数据结构
      • R 流程控制与函数
      • R 数据导入与导出
      • R 统计分析基础
      • R 绘图 (Plotting)
    • Pandas 教程

      • Pandas 简介
      • Series 与 DataFrame
      • Pandas 数据分析
      • Pandas 时间序列分析
      • Pandas 数据透视与可视化

动态规划 (Dynamic Programming)

1. 核心思想

将复杂问题分解为重叠子问题,通过存储子问题的解来避免重复计算。

  • 最优子结构: 问题的最优解包含子问题的最优解。
  • 重叠子问题: 递归过程中多次遇到相同问题。

2. 方法

  • 自顶向下 (Memoization): 递归 + 备忘录。
  • 自底向上 (Tabulation): 迭代 + 表格。

3. 经典问题

  • 斐波那契数列 (Fibonacci)
  • 0/1 背包问题 (Knapsack Problem)
  • 最长公共子序列 (LCS)
  • 爬楼梯 (Climbing Stairs)

推荐资源

  • LeetCode: Dynamic Programming
最近更新: 2026/2/15 04:15
Contributors: MatrixCQY
Prev
查找算法 (Searching Algorithms)
Next
贪心算法 (Greedy Algorithms)