标签:效率 分治 分解 递归 分治法 本质 第一题 解决 时间
1.你对动态规划算法的理解(2分)
答:动态规划算法其实和分治法很像,本质都是把一个大的问题分解成若干个小问题,通过求解子问题得到原问题的解,而子问题一般是存在联系的,用分治法会消耗大量时间,子问题被重复计算多次,如果我们把已解决子问题的答案保存,需要时拿出来用,这样可避免大量计算,我们用一个表来记录这些结果,这是动态规划的思想。
2.分别列出编程题1、2的递归方程(2分)
第一题:
for(int i = 1; i < n; i++){
for(int j = 0; j < i; j++){
if(a[j] < a[i] && b[j] + 1 > b[i]){
b[i] = b[j] + 1;
}
}
}
第二题:
for(int i = n - 2; i >= 1; i--){
for(int j = i + 1 ; j <= n - 1; j++){
if(rent[i][n] > (rent[i][j] + rent[j][n]))
rent[i][n] = rent[i][j] + rent[j][n];
}
}
3.说明结对编程情况(1分
答:自己对动态规划并不是特别了解,自己编程所花时间很长,结对编程提高了我的效率。
标签:效率 分治 分解 递归 分治法 本质 第一题 解决 时间
原文地址:https://www.cnblogs.com/kop126/p/9906497.html