我对动态规划的理解:动态规划与分治法相似,都是要将待求解问题分解成若干个子问题,先求子问题,然后从子问题的解得到原问题的解。但是适用于动态规划的问题,经分解得到的子问题不是相互独立的。我们在通过动态规划解决子问题的时候,用一个表来记录已解决的子问题的答案,将子问题的答案填入表中。动态规划适用于解最优化问题,先找出最优解性质,刻画其结构特征,递归定义最优值,自底向上计算最优值,个金桔信息构造最优解。动态规划算法在求解最优化问题的时候有其简便性,通俗来说就是将问题细化成一个个相似的小问题,然后递归着找每一个小问题,然后将每一个小问题的结果保存起来,通过自底向上的顺序,逐步找出最优解。
(1) 新建一个大小为n的数组A[n],并将其赋初值为1
a[n] 用于存放序列
A[i]代表的是从开始a[1] 到a[i]数字序列的单调递增最长子序列
A[i] = 1 当不存在k<i,且a[k] < a[i] 时
= max(A[k]) +1 当存在k<i,且a[k] < a[i] 时
(2) f[i][j] = min { f[i][k] + f[k][j] }
结对编程情况:通过结队,我和组员能够互相交流互相学习更多,思路也会比一个人思考的时候更为清晰,减少了一些不必要浪费的时间。