连续子数组的最大和

public class Solution {
    public int FindGreatestSumOfSubArray(int[] array) {
        int[] dp = new int[array.length];
        int max = array[0];
        dp[0] = array[0];
        for (int i = 1; i < array.length; i++) {
            // 动态规划,状态转移方程,确定dp[i]的最大值
            dp[i] = Math.max(dp[i - 1] + array[i], array[i]);
            // 每次比较,保存出现的最大值
            max = Math.max(max, dp[i]);
        }
        return max;
    }
}
 
状态转移方程:要么全部加上,要么重新开始,
可以先构造dp[0],dp[1],dp[2]看看结果
posted @ 2022-12-06 10:48  northli  阅读(8)  评论(0编辑  收藏  举报