53、最大子序和

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/benzhaohao/article/details/81022291


输入: [-2,1,-3,4,-1,2,1,-5,4],

输出: 6

解释: 连续子数组 [4,-1,2,1] 的和最大,为 6

代码如下:

class Solution {
    public static int maxSubArray(int[] nums) {
       int maxsum=nums[0];   //定义数组最大和初始值
       int tempsum=nums[0];   //定义数组临时和初始值
       for(int i=1;i<nums.length;i++){
        //当tempsum初始值nums[0]<=0时,应使tempsum=nums[1] 而不是等于0,原因如下面的测试实例
           tempsum=tempsum<=0?nums[i]:nums[i]+tempsum; 
           if(tempsum>maxsum)
                maxsum=tempsum;
        }
        return maxsum;
  }

   public static void main(String[] args){
       int a[]={-1};
       System.out.println(maxSubArray(a));
   }
}

猜你喜欢

转载自blog.csdn.net/benzhaohao/article/details/81022291
今日推荐