求数组的连续子数组之和最大
2010-10-14 15:18
260 查看
求子数组和最大,同时返回子数组的开始和结尾处。
如需要返回开始和结尾,只需额外添加两个下标标识即可。
如需要返回开始和结尾,只需额外添加两个下标标识即可。
#include <iostream> using namespace std; typedef struct Result { int sum; int begin; int end; }Result; Result getMaxSubArraySum(int*array, int len) { Result result; result.sum = result.begin = result.end = 0; int tmpSum = 0; int tmpBegin = 0; for(int i=0; i<len; i++) { if(tmpSum + array[i] > 0) { tmpSum += array[i]; if(result.sum < tmpSum) { result.end = i; result.begin = tmpBegin; result.sum = tmpSum; } } else { tmpSum = 0; tmpBegin = i+1; } } return result; } int main() { int arr[] = {2,-3,10,-4,3,1,-2,5,-2,11}; int len = sizeof(arr)/sizeof(int); Result re = getMaxSubArraySum(arr, len); cout<<re.sum << " from "<<re.begin <<" to "<<re.end << endl; cin >> arr[0]; return 0; }
相关文章推荐
- 连续子数组的最大和
- 面试题31.连续子数组的最大和
- 【剑指offer-Java版】31连续子数组的最大和
- 连续子数组的最大和32
- 算法-子数组连续序列最大和其时间复杂度如何从O(n^3)到O(n)
- 剑指OFFER之最大子向量和(连续子数组的最大和)(九度OJ1372)
- 剑指offer--面试题31:连续子数组的最大和
- 求出数组中连续数和最大
- Max_Sum_of_Sub_Array 连续子数组和最大
- 2、软件工程结对开发之求二维数组中连续最大子数组之和
- 首尾连接的二维数组中连续子数组的最大和
- 数组最大连续和 max sum
- 面试题:连续子数组的最大和
- IMWeb提升营Day5 | 训练题30:连续数组的最大和
- 编程珠玑第八章——分治算法求解数组中的最大的连续和
- 求某个数组里连续子数组最大和的几个算法
- 数组连续子数组的最大和
- 在一个数组中找出和最大的一个连续的子数组串
- 【剑指offer】连续子数组的最大和
- 连续子数组的最大和