题解 | #连续子数组的最大和#

连续子数组的最大和

http://www.nowcoder.com/practice/459bd355da1549fa8a49e350bf3df484

import java.util.Arrays;

public class Solution {
    public int FindGreatestSumOfSubArray(int[] array) {
        int length = array.length;
        if(length == 0){//数组判空处理
            return 0;
        }
        
        int[] temp = new int[length];
        temp[0] = array[0];
        //动态规划,最优子结构
        //当前问题和前一个问题的关系
        //dp[n-1]>0时:dp[n]=array[i]+dp[n-1];
        //dp[n-1]<0时:dp[n]=array[i];
        for(int i=1;i<length;i++){
            if(temp[i-1]>0){
                temp[i] = temp[i-1] + array[i];
            }else{
                temp[i] = array[i];
            }
        }
        Arrays.sort(temp);
        return temp[length-1];//返回数组中的最大值
    }
}
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务