题解 | #连续子数组的最大和#
连续子数组的最大和
http://www.nowcoder.com/practice/459bd355da1549fa8a49e350bf3df484
import java.util.Arrays;
public class Solution {
public int FindGreatestSumOfSubArray(int[] array) {
int length = array.length;
if(length == 0){//数组判空处理
return 0;
}
int[] temp = new int[length];
temp[0] = array[0];
//动态规划,最优子结构
//当前问题和前一个问题的关系
//dp[n-1]>0时:dp[n]=array[i]+dp[n-1];
//dp[n-1]<0时:dp[n]=array[i];
for(int i=1;i<length;i++){
if(temp[i-1]>0){
temp[i] = temp[i-1] + array[i];
}else{
temp[i] = array[i];
}
}
Arrays.sort(temp);
return temp[length-1];//返回数组中的最大值
}
}
