原题题目
代码实现(首刷大部分看解小部分自解)
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;
}