Maximum Subarray

来源:互联网 发布:程序员上班闲 编辑:程序博客网 时间:2024/06/05 17:04


public class Solution {    public int maxSubArray(int[] A) {        int sum = A[0], max = A[0];          for (int i = 1; i < A.length; i++) {              sum = sum < 0 ? A[i] : sum + A[i];              max = sum > max ? sum : max;          }          return max;    }}

经典的求最大子串和的方法竟然不管用,诡异!!!

public class Solution {    public int maxSubArray(int[] A) {        if(A.length == 0){            return 0;        }        int max = 0, cur_max = 0, cur_left = 0, cur_right = 0,left = 0,right = 0;        for(int i = 0; i < A.length; i++){            cur_max += A[i];            if(cur_max > 0){                cur_right = i;                if(max < cur_max){                    max = cur_max;                    right = cur_right;                    left = cur_left;                }            }            else{                cur_right = cur_left = i+1;                cur_max = 0;            }        }        return max;    }}


0 0