算法第3章作业

1.对动态规划的理解

动态规划适用条件:同时满足最优子结构和重叠子问题。

最优子结构:问题的最优解包含了子问题的最优解。

重叠子问题:在利用递归解决问题时,有些问题总是被重复计算,效率低下。而动态规划对每个子问题只解一次,把结果保存在表格中,通常只需要多项式时间就可以解决。

 

2.编程题递归方程

(1)设dp[i]为以i为最后一位的最长上升子序列的长度,那么令dp[1]=1,dp[i] = max( dp[i], dp[j] + 1 )  ( j < i  )&&(a[j]<a[i])。

(2)设dp[i]为所需最小代价,初始化每个dp为inf,令dp[1] = 0,dp[i]=min(min(dp[i],dp[i-1]+a[i-1][i]),dp[j]+a[j][i])。

 

3.结对编程情况

在跟队友讲解思路的过程中,我的的思路变得更加清晰了。同时队友也帮忙指出了错误,弥补了代码的漏洞。

posted @ 2018-11-04 20:26  kiritsugu  阅读(96)  评论(0编辑  收藏  举报