连续子数组的最大和

来源:互联网 发布:物理补课软件 编辑:程序博客网 时间:2024/06/05 22:34

给定一个序列,求其子序列中的最大和,序列长度最少为1


dp[i]子序列的尾端是第i个数的最大子序列长度

public class Solution {    public int FindGreatestSumOfSubArray(int[] array) {        if(array.length == 0)return 0 ; int [] dp = new int[array.length] ; dp[0] = array[0] < 0 ? 0 : array[0] ;int ans = dp[0] ; for(int i = 1;i < array.length;i++){dp[i] = dp[i-1] + array[i] ; dp[i] = dp[i] > 0 ? dp[i] : 0 ; ans = Math.max(ans , dp[i]) ; }if(ans == 0){ans = -Integer.MAX_VALUE ; for(int i = 0;i < array.length;i++){ans = Math.max(ans, array[i]) ; }}return ans ;     }}
0 0