算法第三章作业——动态规划
1.对动态规划算法的理解
1).具有最优子结构和重叠子问题
2).后面的数据会对前面的结果产生影响
3).关键是找到正确的递归方程
2.列出编程题1、2的递归方程
编程题1
for (int i = 1 ; i < n ; i ++ ) { dp[i] = 1; for (int j = 0 ; j <= i ; j ++ ) { if (num[j] < num[i] && dp[j] > dp[i] - 1) { dp[i] = dp[i] + 1; } } }
编程题2
for (int r = 2 ; r <= n ; r ++ ) {
for (int i = 1 ; i <= n - r + 1 ; i ++ ) {
int j = i + r - 1;
for (int k = i ; k <= j ; k ++ ) {
int t = price[i][k] + price[k][j];
if (t < price[i][j])
price[i][j] = t;
}
}
}

浙公网安备 33010602011771号