程序员面试金典——17.8最大连续数列和
Solution1:典型的动态规划题啊.
一遍过,哈哈哈
class MaxSum {
public:
int getMaxSum(vector<int> A, int n) {
// write code here
int dp[n], max_sum = INT_MIN;
memset(dp, 0, sizeof(dp));
for(int i = 0; i < n; i++) {
if(i == 0) {
dp[i] = A[i];
max_sum = max(max_sum, dp[i]);
}
else if(dp[i-1] < 0) {
dp[i] = A[i];
max_sum = max(max_sum, dp[i]);
}
else if(dp[i - 1] >= 0) {
dp[i] += dp[i - 1] + A[i];
max_sum = max(max_sum, dp[i]);
}
}
return max_sum;
}
};