输入:nums = [ - 2 , 1 , - 3 , 4 , - 1 , 2 , 1 , - 5 , 4 ]
输出:6
解释:连续子数组 [ 4 , - 1 , 2 , 1 ] 的和最大,为 6
class Solution {
public int maxSubArray ( int [ ] nums) {
int n= nums. length;
if ( n== 1 ) return nums[ 0 ] ;
double min= Math . pow ( - 10 , 5 ) ;
for ( int i= 0 ; i< n; i++ ) {
int battle= nums[ i] ;
min= Math . max ( battle, min) ;
for ( int j= i+ 1 ; j< n; j++ ) {
battle+= nums[ j] ;
min= Math . max ( battle, min) ;
}
}
return ( int ) min;
}
}
class Solution {
public int maxSubArray ( int [ ] nums) {
int n= nums. length;
if ( n== 1 ) return nums[ 0 ] ;
double min= Math . pow ( - 10 , 5 ) ;
for ( int i= 0 ; i< n; i++ ) {
int battle= 0 ;
for ( int j= i; j< n; j++ ) {
battle+= nums[ j] ;
min= Math . max ( battle, min) ;
}
}
return ( int ) min;
}
int n= nums. length;
if ( n== 1 ) return nums[ 0 ] ;
int sum= 0 ;
int res= nums[ 0 ] ;
for ( int num: nums) {
if ( sum> 0 ) sum+= num;
else sum= num;
res= Math . max ( res, sum) ;
}
return res;
class Solution {
public int maxSubArray ( int [ ] nums) {
int n= nums. length;
if ( n== 1 ) return nums[ 0 ] ;
int sum= Integer . MIN_VALUE;
int count= 0 ;
for ( int i= 0 ; i< n; i++ ) {
count+= nums[ i] ;
sum= sum> count? sum: count;
if ( count<= 0 ) {
count= 0 ;
}
}
return sum;
}
}