
剑指offer JZ30 连续子数组的最大和
发布日期:2021-05-07 13:14:40
浏览次数:17
分类:原创文章
本文共 834 字,大约阅读时间需要 2 分钟。
连续子数组的最大和
输入一个整型数组,数组里有正数也有负数。数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为 O(n).
输入
[1,-2,3,10,-4,7,2,-5]
输出
18 (3,10,-4,7,2 )
public int FindGreatestSumOfSubArray(int[] array) { if (array.length==0 || array==null) { return 0; } int curSum=0; int greatestSum=array[0]; //把数组分为前中后三段,中间段是满足要求的,那么前、后的总和一定是负 //因此从前往后累加,如果累加结果为负了,那就从下一个开始重新累加 //每一次累加之后都判断一下结果是否为最大的,把最大的保存下来,如果遇到一个负数使累加结果减少不会影响最大值 for (int i = 0; i < array.length; i++) { if (curSum<=0) { curSum=array[i]; //记录当前最大值 }else { curSum+=array[i]; //当array[i]为正数时,加上之前的最大值并更新最大值。 } if (curSum>greatestSum) { greatestSum=curSum; } } return greatestSum; }
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2025年03月27日 14时13分46秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
解决 vscode 窗口故障
2019-03-04
JSP 入门学习
2019-03-04
JSP,EL 和 JSTL 一篇文章就够了
2019-03-04
(延迟初始化)Lazy 初始化
2019-03-04
(Java 剑指 offer)二维数组中的查找
2019-03-04
(SpringMVC)springMVC.xml 和 web.xml
2019-03-04
Oracle 学习一篇文章就够了(珍藏版)
2019-03-04
一篇文章带你搞定 Oracle 的体系结构
2019-03-04
Oracle 单行函数
2019-03-04
(Java 剑指 offer)剪绳子
2019-03-04
Spring Security 珍藏版快速入门
2019-03-04
一篇文章带你搞定 OAuth 2.0 的四种方式
2019-03-04
一篇文章带你搞定 Spring Security 的登录流程
2019-03-04
一篇文章带你搞定官方推荐 Stack 的替代品 双端队列 Deque
2019-03-04
一篇文章带你搞定 SpringSecurity 和 OAuth2 的结合使用
2019-03-04
一篇文章带你搞定并发多线程里的 ThreadLocal
2019-03-04
(LeetCode)Java 求解搜索旋转排序数组
2019-03-04
(模拟数组)Java 求解螺旋矩阵 II
2019-03-04
Burpsuite-02-设置JVM内存大小与解决页面显示文字乱码错误
2019-03-04