Skip to content

Latest commit

 

History

History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

README.md

第5周学习笔记

动态规划(一)

动态规划关键点:

  • 1.找到最优子结构

  • 2.储存中间状态:

  • 3.递推公式(美其名曰:状态转移方程或者 DP 方程)

动态规划 和 递归或者分治 没有根本上的区别(关键看有无最优的子结构)

共性:找到重复子问题差异性:最优子结构、中途可以淘汰次优解关键点

动态规划代码模版

// 状态定义
dp = new int [m+1][n+1];

// 初始状态
dp[0][0] = x;
dp[0][1] = y;
...

// DP状态推导
for i = 0; i <= n; ++i {
    for j = 0; j <= m; ++j {
        ...
        
        dp[i][j] = min{dp[i-1][j], dp[i][j-1], etc};  
    }
}

return dp[m][n]; // 最优解