【剑指offer】面试题 42:连续子数组的最大和
来源:互联网 发布:如何给网站做排名优化 编辑:程序博客网 时间:2024/05/16 13:49
题目描述
输入一个整型数组,数组里有正数也有负数。数组中的一个或者连续多个整数组成一个子数组。
求所有子数组的和的最大值。要求时间复杂度为O(n)。
时间限制:1秒 空间限制:32768K热度指数:73009
思路
用sum记录和最大,tempsum记录累加值。
基本思想:对于一个数A, 若A的左边累加值为非负,那么加上A能使得值不小于A,
则认为累加值对整体和是有贡献的。
如果前几项累加值为负数,则认为有害于总和,从当前数字重新开始计算累加和。
此时,若和大于sum, 则用sum将这个值记录下来。
参考代码
class Solution {public: bool g_InvalidInput = false; int FindGreatestSumOfSubArray(vector<int> array) { if (array.empty()) return 0; int sum = array[0], tempsum = array[0]; for (int i = 1; i < array.size(); i++) { tempsum = (tempsum < 0) ? array[i]: tempsum + array[i]; sum = (tempsum > sum) ? tempsum : sum; } return sum; }};
阅读全文
0 0
- 《剑指Offer》面试题:连续子数组的最大和
- 【剑指offer】面试题42:连续子数组的最大和
- 【剑指offer】面试题 42:连续子数组的最大和
- 剑指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连续子数组的最大和
- 剑指Offer:面试题31——连续子数组的最大和(java实现)
- 谈谈对接芝麻信用踩的坑
- 学习hibernate过程中出现的问题
- CDN加速知识篇
- Android进阶#(3/12)保证APP流畅的关键因素——多线程_Android中的多线程
- 浅议境外主机空间之香港主机
- 【剑指offer】面试题 42:连续子数组的最大和
- 前端·面试 记录一些有意思的题目
- SHA-1加密算法C语言实现
- HDU 6148 数位DP
- STM32之串口的使用
- 使用matplotlib时pyplot.show()不显示图像的问题
- matplotlib xticks yticks
- web服务器(Tomcat)、Web应用入门
- Linux局域网内配置使用proxy连接外网