算法第三章作业

一、对动态规划算法的理解

  动态规划算法与分治法类似,都是将求解问题分解成若干子问题,解决子问题,最后结合子问题得到原问题的解。但与分治法不同的是,这些分解的子问题往往不是互相独立的,其内部存在某种联系,所以可以将子问题的解记录在一个表上,最后通过读表的方式解决原问题。动态规划适用于解最优化问题。

二、分别列出编程题1、2的递归方程

  1.单调递增最长子序列:用一个数组a【】来存数列,用dp【i】来表示以i下标结尾的数的最长子序列,则dp【i】=max(dp【j】)+1(1<=j<i且a【i】>a【j】 )

  2.租用游艇问题:用一个二维数组a【】【】来存各出租站之间的租金,用dp【i】【j】表示第i站到第j站的最小费用,则dp【i】【j】=min(dp【j】【k】)+a【i】【k】( i<k<=j)

三、结对编程情况

  跟着队友,特别是基础好的队友学习编程,效率确实大大的提高了很多,而且很多小问题也在大佬面前解决了。但是我们之间的实力悬殊过大,总会让我有点懈怠,让我觉得反正有他在,我划划水就可以了。这一点特别不好,我还是要端正自己的态度,努力学习,不能只是靠着抱大腿来完成任务,别人的东西可能只是暂时属于你,但自己的东西却永远的属于你。

posted @ 2019-11-03 09:17  三户  阅读(80)  评论(0编辑  收藏  举报