算法第三章作业
1、对动态规划算法的理解:
我对动态规划的理解是见一步走一步,将上一步的结果保存,再进行下一步。思想是将主问题分解成若干个子问题,先求解子问题的解,再通过子问题的解来求出主问题的解。
2、编程题一的递归方程:
dp[1]=1,dp[i] = max( dp[i], dp[j] + 1 ) ( j < i )&&(a[j]<a[i])
编程题二的递归方程:
dp[1] = 0,dp[i]=min(min(dp[i],dp[i-1]+a[i-1][i]),dp[j]+a[j][i])
3、结队编程的情况:
我们两个会先各自构思一下,遇到卡住的地方就相互请教,将代码打出来之后再互相检查,给意见。结队编程让我们能更快地解决一个问题,能使两个人更好地互补。