连续子数组求和
2015-08-01 21:19
344 查看
给定一个整数数组,请找出一个连续子数组,使得该子数组的和最大。输出答案时,请分别返回第一个数字和最后一个数字的值。(如果两个相同的答案,请返回其中任意一个)
class Solution { public: /** * @param A an integer array * @return A list of integers includes the index of * the first number and the index of the last number */ vector<int> continuousSubarraySum(vector<int>& A) { // Write your code here vector<int> result; int n = A.size(); if (n < 1) { return result; } int begin = 0; int end = 0; int sum = A[0]; int maxSum = A[0]; int maxBegin = 0; int maxEnd = 0; for (int i = 1; i < n; i++) { if (sum <= 0) { if (A[i] > sum) { begin = i; end = i; sum = A[i]; } if (A[i] >= maxSum) { maxBegin = i; maxEnd = i; maxSum = A[i]; } } else { sum += A[i]; if (sum > 0) { end = i; } if (sum > maxSum) { maxBegin = begin; maxEnd = i; maxSum = sum; } } } result.push_back(maxBegin); result.push_back(maxEnd); return result; } };
相关文章推荐
- MATLAB 基本数据类型和调用方式
- 做一个靠谱的iOS开发者(1)
- 在RedHat Server 5.4上安装YUM【利用网易免费yum源,配置和更新yum】
- 12.深浅拷贝
- Openfiler 配置iscsi iSCSI Targets 不能添加 Target IQN
- java培训 2015-07-31
- ISE中FPGA的实现流程
- What does => and () => mean in Scala
- Hibernate查询数据库的三种方式
- JDBC
- ABP之动态WebAPI(二)
- 测试连接MySQL数据库时遇到的一些问题
- CSUST 7月31日 并查集 & 最小生成树
- Best Time to Buy and Sell Stock III
- 量化交易开发工具的选择
- 正常股市,非常股民
- ORA-01008:并非所有的变量都已绑定
- C++中接口与实现分离的技术 ZZ
- Swift对于可选类型(Optionals)讲解不错的文章
- [记录]学习<<QT学习之路2>>第五天