tulip notes
首页
  • 学习笔记

    • 《Vue》
  • 踩坑日记

    • JavaScript
  • MQ
  • Nginx
  • IdentityServer
  • Redis
  • Linux
  • Java
  • SpringBoot
  • SpringCloud
  • MySql
  • docker
  • 算法与设计模式
  • 踩坑与提升
  • Git
  • GitHub技巧
  • Mac
  • 网络
  • 项目构建合集
  • 一些技巧
  • 面试
  • 一些杂货
  • 友情链接
  • 项目发布
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Star-Lord

希望一天成为大师的学徒
首页
  • 学习笔记

    • 《Vue》
  • 踩坑日记

    • JavaScript
  • MQ
  • Nginx
  • IdentityServer
  • Redis
  • Linux
  • Java
  • SpringBoot
  • SpringCloud
  • MySql
  • docker
  • 算法与设计模式
  • 踩坑与提升
  • Git
  • GitHub技巧
  • Mac
  • 网络
  • 项目构建合集
  • 一些技巧
  • 面试
  • 一些杂货
  • 友情链接
  • 项目发布
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • Java

  • SpringBoot

  • SpringCloud

  • Mysql

  • docker

  • 算法与设计模式

    • 算法初入
    • 十大经典排序算法
    • 动态规划-1
      • 什么是动态规划
      • 如何寻找最值
    • 设计模式初入
    • 六大设计原则
    • 单例模式与工厂模式
    • 代理模式和模版模式
    • 策略模式和观察者模式
  • 踩坑与提升

  • 后端
  • 算法与设计模式
EffectTang
2024-07-30
目录

动态规划-1

# 动态规划-1

# 什么是动态规划

动态规划(Dynamic Programming,简称DP)是一种在计算机科学和数学中用于解决最优化问题的方法。它特别适用于能够分解为重叠子问题的问题,并且这些子问题的解决方案可以被存储起来以供后续使用,从而避免重复计算。

简单的说,就是在一个复杂问题中寻找最值的一种方法。

# 如何寻找最值

最直接最简单的方法就是——穷举,但动态规划的穷举有点特别,因为这类问题存在「重叠子问题」,如果暴力穷举的话效率会极其低下,所以需要「备忘录」或者「DP table」来优化穷举过程,避免不必要的计算。

另外,虽然动态规划的核心思想就是穷举求最值,但是问题可以千变万化,穷举所有可行解其实并不是一件容易的事,只有列出正确的「状态转移方程」才能正确地穷举。 以上提到的重叠子问题、最优子结构、状态转移方程就是动态规划三要素。

上次更新: 2025/04/23, 16:23:16
十大经典排序算法
设计模式初入

← 十大经典排序算法 设计模式初入→

最近更新
01
面向切面跟自定义注解的结合
05-22
02
时间跟其他数据的序列化
05-19
03
数据加密与安全
05-17
更多文章>
Theme by Vdoing | Copyright © 2023-2025 EffectTang
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式