程序员面试金典——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;
}
};
最大连续数列和算法
本文介绍了一种求解最大连续子数组和的典型动态规划方法。通过一次遍历数组,利用动态规划思想记录并更新最大子数组和,实现高效求解。此算法适用于寻找一维数组中具有最大和的连续子数组。
2835

被折叠的 条评论
为什么被折叠?



