不,会再见

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

1、单调递增最长子序列题目分析:

1.1 根据最优子结构性质,列出递归方程式:

  由题知数组a的长度为n,定义一个数组b[i]用来记录从a0到ai(0<=i<n)的最长递增子序列长度,

  将其初始化为1,表明最小单调递增最长子序列为1,

  则递归方程式为: b[i]=max{b[j]+1} (1 <= j < i , a[j] < a[i])

1.2 给出填表法中表的维度、填表范围和填表顺序:

   所需填的表的维度:一维

  填表范围:[0,n)

  填表顺序:从左往右

1.3 分析该算法的时间和空间复杂度:

  时间复杂度:在填表b的时候需要(0~n-1的n次循环,再次遍历数组以得到递增序列的最坏情况也要n次,所以时间复杂度为O(n^2)

 

  空间复杂度:由于填的是长度为n的一维表,所以空间复杂度为O(n)

2、对于动态规划算法的理解:

 

    动态规划方法通常用来求解最优化问题,这些问题有很多种解,但我们希望寻求最优解。若问题满足①具有最优子结构 ②子问题重叠

 即可使用动态规划,与分治法不同的是,为了避免重复多次计算子问题,动态规划算法用一个表记录所有已解决的子问题的答案,

 不管该子问题以后是否被利用,只要它被计算过,就将其结果填入表中。使用动态规划时,很重要的一点就是找出问题的递归关系,

 列出递归方程式。

3、结对编程情况:

 在结对编程的过程中,我和我的搭档沈峰吸取了前两次结对编程的经验教训,此次编程分工更为明确了,配合得更好了,

 对动态规划算法有了更深的学习和了解。

posted on 2020-10-31 23:11  不,会再见  阅读(76)  评论(0)    收藏  举报