思路:
1.两种方法,dp动态
2.贪心
public class Solution {
public int FindGreatestSumOfSubArray(int[] array) {
//dp[i] 以 i 结尾的数组最大和
if(array == null){
return 0;
}
if(array.length == 1){
return array[0];
}
// int[] dp = new int[array.length];
// dp[0] = array[0];
// int result = array[0];
// for(int i = 1;i < array.length ; i++){
// dp[i] = Math.max(dp[i-1] +array[i], array[i]);
// result = Math.max(dp[i],result);
// }
// return result;
int result = 0;
int temp = 0;
int max = Integer.MIN_VALUE;
for(int i = 0;i<array.length;i++){
result += array[i];
if(max < result){
max = result;
}
if(result < 0){
//题目是连续子数组
//如果不重置,后面累加如果数字为负数,将更小,如果为正数也是变小
result = 0;
}
}
return max;
}
}