编程算法 - 连续子数组的最大和 代码(C)
2014-07-08 12:17
274 查看
连续子数组的最大和 代码(C)
本文地址: http://blog.csdn.net/caroline_wendy题目: 输入一个整型数组, 数组里有正数也有负数. 数组中一个或连续的多个整数组成一个子数组.求全部子数组的和的最大值.
使用一个数保存当前和, 假设当前和为小于0, 则替换新值, 否则, 递加, 使用一个数保存暂时最大值.
代码:
/* * main.cpp * * Created on: 2014年6月29日 * Author: wang */ #include <stdio.h> #include <limits.h> using namespace std; int GetGreatestSumOfSubArray (int* pData, int length) { if (pData == NULL || length <= 0) return 0; int nCurSum = 0, nGreatestSum = -INT_MAX; for (int i=0; i<length; ++i) { if (nCurSum <= 0) nCurSum = pData[i]; else nCurSum += pData[i]; if (nCurSum > nGreatestSum) nGreatestSum = nCurSum; } return nGreatestSum; } int main(void) { int data[] = {1, -2, 3, 10, -4, 7, 2, -5}; int result = GetGreatestSumOfSubArray(data, 8); printf("result = %d\n", result); return 0; }
输出:
result = 18
相关文章推荐
- 编程算法 - 连续子数组的最大和 代码(C)
- 编程算法 - 连续和最大的子数组 代码(C)
- 剑指offer代码解析——面试题31连续子数组的最大和
- 每天写一点代码----连续子数组乘积最大
- 剑指offer代码解析——面试题31连续子数组的最大和
- 连续子数组的最大和-使用getchar()进行代码改进
- 求PHP数组最大值,最小值的代码
- java代码测试集合,数组等最大存储大小
- 求数组连续最大和问题
- 一个int数组,求乘起来最大的连续子序列
- 子数组的最大乘积; 3种算法,2个代码;
- 连续最大子数组和
- 求数组中连续最大和值,时间复杂度为O(n)
- 面试题31:连续子数组的最大和
- 动态规划算法 (微软笔试题,求连续子数组的最大和)
- 求数组中连续子序列的最大和
- 找出数组和最大的连续子序列
- 第五章、求连续子数组的最大和
- 求数组中连续区间的和最大
- 程序员编程艺术:第七章、求连续子数组的最大和