剑指offer面试题31:连续子数组的最大和
来源:互联网 发布:淘宝阴茎拉伸器 编辑:程序博客网 时间:2024/06/04 19:07
题目:输入一个整型数组,数组里有整数也有负数。数组中一个或连续的多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度O(n)。
思路:从头到尾逐个累加数组中的每个数字,记录最大值,当和小于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;}
0 0
- 《剑指Offer》面试题:连续子数组的最大和
- [剑指offer][面试题31]连续子数组的最大和
- 剑指offer面试题31:连续子数组的最大和
- 剑指Offer:面试题31 连续子数组的最大和
- 剑指offer 面试题31 求连续子数组的最大和
- 《剑指Offer》学习笔记--面试题31:连续子数组的最大和
- 【剑指Offer学习】【面试题31:连续子数组的最大和】
- 剑指Offer面试题31(java版):连续子数组的最大和
- 【剑指offer】5.2时间效率——面试题31:连续子数组的最大和
- 剑指offer代码解析——面试题31连续子数组的最大和
- 剑指offer-面试题31:连续子数组的最大和
- 剑指offer 面试题31:连续子数组的最大和 题解
- 剑指offer之面试题31连续子数组的最大和
- 剑指Offer:面试题31——连续子数组的最大和(java实现)
- 剑指Offer----面试题31:连续子数组的最大和
- 剑指offer面试题31:连续子数组的最大和
- 剑指offer--面试题31:连续子数组的最大和
- 连续子数组的最大和(剑指Offer 面试题31)
- AWT编程:
- signed 与 unsigned 有符号和无符号数
- 面向对象的原则之单一职责原则
- JDBC连接各种数据库的字符串
- jdbc连接数据库完整过程
- 剑指offer面试题31:连续子数组的最大和
- 欢迎使用CSDN-markdown编辑器
- 信息系统安全
- Java的GridLayout布局管理器:
- ios10 访问相机,照片crash问题
- 你不知道的Java笔记8--抽象类(abstract)
- 单向散列加密
- Intent传递数据时,可以传递哪些类型数据?
- Android中的Calendar日历控件