剑指 Offer 42. 连续子数组的最大和

//找规律法
class Solution {
    public int maxSubArray(int[] nums) {
    //全局变量标记是否输入无效
    boolean isInvalidInput = false;

    if(nums == null || nums.length <= 0){
        isInvalidInput = true;
        return 0;
    }
    isInvalidInput = false;
    //当前子数组和
    int curSum = 0;
    //最大子数组和
    int GreatedSum = 0x80000000;

    for(int i=0;i<nums.length;i++){
        if(curSum <= 0){ //如果是负的,还不如不加
            curSum =nums[i];
        }else { //正的就 将当前数加到curSum上
            curSum += nums[i];
        }
        //保证GreatedSum始终是最大的
        if(curSum > GreatedSum)
            GreatedSum =curSum ;
    }
    return GreatedSum;
    }
}

 

posted @ 2020-12-16 16:32  peanut_zh  阅读(58)  评论(0编辑  收藏  举报