剑指offer面试题31:连续子数组的最大和
2016-09-21 08:28
225 查看
题目:输入一个整型数组,数组里有整数也有负数。数组中一个或连续的多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度O(n)。
思路:从头到尾逐个累加数组中的每个数字,记录最大值,当和小于0,重新累加,若有大于之前记录的最大值,则更新。
思路:从头到尾逐个累加数组中的每个数字,记录最大值,当和小于0,重新累加,若有大于之前记录的最大值,则更新。
#include <iostream> #include <vector> using namespace std; int SubMax(vector<int> num, int length) { if (num.empty() || length <= 0) return -1; int curMax = 0; int nextMax = 0; for (int i = 0; i < length; ++i) { nextMax += num[i]; if (nextMax > curMax) { curMax = nextMax; } else if (nextMax < 0) { curMax = 0; nextMax = 0; } } return curMax; } int main() { vector<int> num; int a; while (cin >> a) { num.push_back(a); } a = num.size(); a = SubMax(num, a); cout << a << endl; return 0; }
相关文章推荐
- 剑指offer--面试题31:连续子数组的最大和
- 剑指offer面试题31连续子数组的最大和
- 【剑指offer】面试题31:连续子数组的最大和
- 剑指offer——面试题31:连续子数组的最大和
- 剑指offer 面试题31:连续子数组的最大和 题解
- 剑指offer-面试题31-连续子数组的最大和
- 剑指offer面试题[31]-连续数组的最大和
- 剑指offer之面试题31连续子数组的最大和
- 剑指offer 面试题31 求连续子数组的最大和
- 剑指offer——面试题31:连续子数组的最大和
- 【剑指offer】面试题31-连续子数组的最大和问题
- [剑指offer][面试题31]连续子数组的最大和
- 【剑指offer】5.2时间效率——面试题31:连续子数组的最大和
- 剑指offer 面试题31 连续子数组的最大和
- 剑指Offer_面试题31_连续子数组的最大和
- 剑指Offer----面试题31:连续子数组的最大和
- 剑指offer代码解析——面试题31连续子数组的最大和
- 剑指offer代码解析——面试题31连续子数组的最大和
- 剑指Offer面试题31:连续数组的最大和 Java实现
- 剑指offer-面试题31:连续子数组的最大和