最大子数组(I, II, III)(动态规划)

III

思路:

如何定义状态呢?一个状态必须包含题中所有信息,每一个状态都是独立不重复且覆盖每一种情况。

这样考虑,题干为一维数组,必须这样设计dp[i],从而遍历每一个位置。考虑到k个不重叠的子数组这一条件,那么这样设计dp[i][j]=所求答案(最大和)。

如何设计状态转移方程呢?考虑前一状态怎么转移到现在的,由于是二维dp,我们这样考虑dp[i][j] = max(dp[i-1][j], dp[i-1][j-1]+a[i])

猜你喜欢

转载自www.cnblogs.com/demian/p/9624829.html