算法第三章作业
1. 你对动态规划算法的理解(2分)
动态规划(Dynamic Programming)是求解决策过程最优化的数学方法,后来沿用到了编程领域。
大致思路:把一个复杂的问题转化成一个分阶段逐步递推的过程,从简单的初始状态一步一步递推,最终得到复杂问题的最优解。
解题步骤:先写出递归方程,再利用递归方程式自底向上求解问题。
2. 分别列出编程题1、2的递归方程(2分)
编程题1:m[i] = max{m[k] + 1 | a[k]<a[i]} , 1 <= k < i
编程题2:m[i][j] = min{m[i][k] + m[k][j]}, i <= k <= j
3. 说明结对编程情况(1分)
单独完成各自题目,并互相学习,查漏补缺,将算法及程序加以修正。