【刷题剑指offer】数组中连续子数组的最大和

来源:互联网 发布:java截取字符串的函数 编辑:程序博客网 时间:2024/05/21 18:49

题目:输入一个整数型数组,数组中有正数也有负数。数组中一个或连续的多个整数组成一个子数组,求所有子数组中和最大为多少。

思路:如果当前和为负数,那么把当前和重置为下一个整数,如果当前和为正数,那么当前和加上下一个正数,设置一个变量保存最大和,每次比较都要更新最大和。

和动态规划思路相似。

代码:

int Findmax(int *data, int length){if (data == NULL || length <= 0)return 0;int curSum = 0;int mxsSum = -1;for (int i = 0; i < length; i++){if (curSum <= 0)curSum = data[i];else{curSum = curSum + data[i];}if (curSum > maxSum)maxSum = curSum;}return maxSum;}

阅读全文
0 0