lintcode 43 最大子数组iii

输入:nums[], k

输出:最大和

思路:动态规划。

动规四要素:

1.状态

  前缀和数组prefix[j]表示:nums[0]到nums[j]的和(前缀和);

  dp[i][j]表示:在0到 j 中选择 i 个子数组所达到的最大和;

2.方程

  Max[i][j] = max(prefix[j] - prefix[j'] + dp[i-1][j'])   ( j' = i-2, i-1, i, ... , j-1)

  dp[i][j] = max(prefix[j], prefix[j] - prefix[j'] + dp[i-1][j'], dp[i][j-1])

posted @ 2016-10-20 15:23  coldyan  阅读(16)  评论(0)    收藏  举报