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;
}
}