剑指offer(27)-连续子数组的最大和
2016-06-15 11:53
309 查看
题目描述
HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。你会不会被他忽悠住?代码
class Solution { public: int FindGreatestSumOfSubArray(vector<int> array) { if(array.size() == 0){ return 0; } int nCurSum = 0; int nGreatestSum = 0x80000000; for(int i=0;i<array.size();i++){ if(nCurSum <= 0){ nCurSum = array[i]; //记录当前最大值 }else{ nCurSum += array[i]; //当array[i]为正数时,加上之前的最大值并更新最大值。 } if (nCurSum > nGreatestSum){ nGreatestSum = nCurSum; } } return nGreatestSum; } };
相关文章推荐
- Erlang中遍历取出某个位置的最大值代码
- Javascript获取数组中的最大值和最小值的方法汇总
- JavaScript如何获取数组最大值和最小值
- C#求n个数中最大值和最小值的方法
- Js获取数组最大和最小值示例代码
- java求三个数的最大值的示例分享
- c#求两个数中最大值的方法
- python使用分治法实现求解最大值的方法
- javascript获取xml节点的最大值(实现代码)
- JavaScript学习笔记之取数组中最大值和最小值
- javascript实现查找数组中最大值方法汇总
- JS中取二维数组中最大值的方法汇总
- JS中取二维数组中最大值的方法汇总
- JavaScript学习笔记之取数组中最大值和最小值
- java 排序
- Mysql自增主键归零的方法
- traceroute、tr、sed、nmap命令
- 一维静态数组_实例:寻找随机数最大值及其下标(附:源码)
- 详细测试Exchange 2010邮件收发信大小限制
- 获取一个数组的最大值与最小值 数组的合并