【剑指offer】面试题31:连续子数组的最大和
题目:
在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。
思路:
保存两个值:当前和sum、最大和max。当sum小于等于0时,置sum为当前值;否则将当前值加到sum上。每次sum和max比较,更新max。
另外,动态规划的思路代码和这里一样。动态规划就是考虑 f(i) 和 f(i-1) 之间的关系。
注意:
需要注意的就是,sum和max初始值的设定,特别是max的初始值。max初始值不能设置为0,因为输入可能全为负数,应该是 int 的最小值 0x80000000。或者将sum和max初始化为下标为0的元素的值。
另外,需要判断输入数组的个数。
代码:
class Solution { public:int FindGreatestSumOfSubArray(vector<int> array) {if(array.size()<=0) return 0;int max=array[0];int sum=array[0];for(int i=1;i<array.size();++i){if(sum<=0) sum=array[i];else sum+=array[i];max=max>sum?max:sum;}return max;} };
转载于:https://www.cnblogs.com/buxizhizhou/p/4722354.html
【剑指offer】面试题31:连续子数组的最大和相关推荐
- 剑指offer面试题42. 连续子数组的最大和(动态规划)
题目描述 输入一个整型数组,数组里有正数也有负数.数组中的一个或连续多个整数组成一个子数组.求所有子数组的和的最大值. 要求时间复杂度为O(n). 思路 详见链接 代码 class Solution: ...
- 【剑指offer-Java版】31连续子数组的最大和
连续子数组最大和,要求O(n)时间复杂度 思路:核心思想就是当前遍历数组的时候,遇到的是一个正数,计算这个正数加上已有的和得到一个新的和 如果这个新的和比当前的正数大,那么保留该和否者更新和为当前正数 ...
- 面试题31.连续子数组的最大和
题目:输入一个整型数组,数组里有正数也有负数.数组中一个或者连续多个整数组成一个子数组. 求所有子数组的和的最大值.要求时间复杂度O(n) 本题可以把所有子数组全部找出来再求其和的最大值便可以得出,但 ...
- 剑指offer面试题[31]-连续数组的最大和
题目描述 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学.今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决.但是,如果向量 ...
- 剑指offer——面试题31:连续子数组的最大和
剑指offer--面试题31:连续子数组的最大和 Solution1: 第一次做这道题.. 讲道理是这是标准的动态规划的题目,可是思路未完全想好. min_element(iterator, iter ...
- [剑指offer]面试题31:连续子数组的最大和
面试题31:连续子数组的最大和 题目:输入一个整型数组,数组里有正数也有负数.数组中一个或连续的多个整数组成一个子数组.求所有子数组的和的最大值.要求时间复杂度为O(n). ❖ 解法一:举例分析数组的 ...
- 剑指offer面试题31. 栈的压入、弹出序列(链表)
题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2 ...
- 剑指Offer面试题:28.连续子数组的最大和
一.题目:连续子数组的最大和 题目:输入一个整型数组,数组里有正数也有负数.数组中一个或连续的多个整数组成一个子数组.求所有子数组的和的最大值.要求时间复杂度为O(n).例如输入的数组为{1,-2,3 ...
- 【剑指 offer】(31)—— 连续子数组的最大和(动态规划)
题目:输入一个整型数组,数组里有正数也有负数.数组中一个或连续的多个整数组成一个子数组.求所有子数组的和的最大值.要求时间复杂度为 O(n)O(n). 例如,输入的数组为 {1, -2, 3, 10, ...
- 【LeetCode】剑指 Offer 42. 连续子数组的最大和
[LeetCode]剑指 Offer 42. 连续子数组的最大和 文章目录 [LeetCode]剑指 Offer 42. 连续子数组的最大和 一.动态规划 一.动态规划 状态定义 设动态规划列表 dp ...
最新文章
- end-to-end 的神经网络
- Redis 笔记系列(十一)——Redis的发布和订阅机制
- ZooKeeper典型应用场景一览
- shell批量插入数据
- python全景图像拼接_Python+OpenCV实现图像的全景拼接
- cs精英游戏python代码_python面向对象-cs游戏示例
- Intellij IDEA 14.x 菜单项中Compile、Make和Build的区别
- UTM 用户线程模型
- i7-9700与E5 2667 V2空载功耗对比
- Atitit.日志系统slf4j的使用
- 用百度地图开发android程序时,location.getAddrStr()总是为null的解决方法
- Densepose安装教程--依据Github官方教程成功安装
- 第一章:客户端网页编程简介
- word文档怎么删除多余的空白页?
- iPhone内存比Android手机小,iPhone内存为什么一直这么小
- react antd design columns 配置解析
- 亲子教育资源库大全集
- 从足球说到鲁伯特之泪
- NOI2019退役记
- linux系统加载u盘的服务,Linux系统下挂载U盘的方法