算法第三章作业
1. 你对动态规划算法的理解(2分)
动态规划是解题时一个记录结果再利用的过程,避免了分治法时重复计算子问题在时间上的浪费,通常用于解决分阶段求解决策的问题。
2. 分别列出编程题1、2的递归方程(2分)
3-1 单调递增最长子序列
dp[i]=max(max(dp[j]+1)(0<j<i&&arr[j]<arr[i]),1);
3-2 租用游艇问题
dp[i][j]=min(dp[i][j],dp[i][k]+dp[k][j]);
(i+1<=j<=n,i+1<=k<=j-1);
dp[i]=min(dp[i],dp[j]+rent[j][i]);
//从1到j的最少租金+从j到i的最少租金
3. 说明结对编程情况(1分)
和队友互相交流思路做了一二题,第三题听了zq老师上课的讲解才理解,每次结对都感觉是一个互相提升的过程!