求一个整形数组的和最大的连续子串 -------- 程序员面试金典
2015-07-25 16:12
344 查看
1.题目描述:一个整型数组,有正有负,求里面和最大的连续子串
2.解决方案:
一个max变量一直记录局部的最大值,sum和用来记录前面的和 对后面造成正值的 情况的判断。如果sum为正,则对后面的未知情况带来的是增加的情况,执行sum += a[i],如果sum为负,则对后面的未知情况带来的是减少的情况,则执行sum = a[i]
2.解决方案:
一个max变量一直记录局部的最大值,sum和用来记录前面的和 对后面造成正值的 情况的判断。如果sum为正,则对后面的未知情况带来的是增加的情况,执行sum += a[i],如果sum为负,则对后面的未知情况带来的是减少的情况,则执行sum = a[i]
#include <iostream> using namespace std; int getMaxSum(int a[],int n) { if( n == 0) return -1; int sum = a[0]; int max = sum; for(int i = 1; i < n ; ++i) { if(sum < 0) sum = a[i]; else sum += a[i]; if(sum > max) max = sum; } return max; } int main() { int a[2] = {-2,-1}; cout << getMaxSum(a,2) << endl; return 0; }
相关文章推荐
- C++动态规划之最长公子序列实例
- C++动态规划之背包问题解决方法
- C#使用动态规划解决0-1背包问题实例分析
- 动态规划
- C++ 动态规划
- DP(动态规划) 解游轮费用问题
- 动态规划的用法——01背包问题
- 动态规划的用法——01背包问题
- 《收集苹果》 动态规划入门
- 《DNA比对》蓝桥杯复赛试题
- 《背包问题》 动态规划
- 关于爬楼梯的动态规划算法
- 动态规划 --- hdu 1003 **
- DP问题各种模型的状态转移方程
- 0-1背包解题过程
- USACO 3.2.2:Stringsobits
- 字符串编辑距离
- HDU ACM Step 2.2.2 Joseph(约瑟夫环问题)
- ACM常用算法
- 01背包问题