原题题目
代码实现(首刷大部分看解小部分自解)
int maximumSum(int* arr, int arrSize){
int dp[100001][2],i,ret;
dp[0][0] = arr[0];
dp[0][1] = INT_MIN;
ret = fmax(dp[0][0],dp[0][1]);
for(i=1;i<arrSize;i++)
{
dp[i][0] = fmax(arr[i],dp[i-1][0]+arr[i]);
dp[i][1] = fmax((dp[i-1][1] == INT_MIN ? 0 : dp[i-1][1]) + arr[i],dp[i-1][0]);
ret = fmax(ret,fmax(dp[i][0],dp[i][1]));
}
return ret;
}