题解 | #连续子数组的最大和#
连续子数组的最大和
http://www.nowcoder.com/practice/459bd355da1549fa8a49e350bf3df484
public class Solution {
public int FindGreatestSumOfSubArray(int[] array) {
int[] dp=new int[array.length];
dp[0]=array[0];
for(int i=1;i<array.length;i++){
if(dp[i-1]>0)
dp[i]+=array[i]+dp[i-1];
else
dp[i]=array[i];
}
int max=-100000;
for(int i=0;i<dp.length;i++)
if(dp[i]>max)
max=dp[i];
return max;
}
}
刷了几道题之后好像有点理解动态规划了,它就是每一步都基于前面的结果,每一步的得到的值都是经过动态谷规划(顾名思义),走一步规划一步
此题依旧是基于上一个最大数数组和,大于0+,小于0到这一步的最大数组长度就是自己的这单个。