剑指offer系列之29:连续子数组的最大和
来源:互联网 发布:ubuntu防火墙 编辑:程序博客网 时间:2024/05/16 19:30
题目描述:输入一个整型数组,数组中一个或连续多个整数组成一个子数组,求所有子数组的和的最大值,要求时间复杂度为O(n)。
思路:举例分析数组的规律,这实际上是一个逐步比较的过程,假设累加进行到某一步,继续累加下一个数的时候发现和变小了,就应该重新计算当前累加的和,这实际上就是一个重新赋值的过程。如果累加之后发现变大了,这当然是我们想要的,自然就继续累加了。累加之后再判断是否大于原来的最大值,如果不是的话,就重新赋值最大值为当前累加的和(因为它更大)。其实还可以使用动态规划的思想。
public class Solution { public int FindGreatestSumOfSubArray(int[] array) { boolean invalidInput = false; if(array == null || array.length == 0){ invalidInput = true; return 0; } invalidInput = false; int nCurSum = 0; int nGreatestSum = 0x80000000; for(int i = 0;i < array.length;i++){ if(nCurSum <= 0){ nCurSum = array[i]; }else{ nCurSum += array[i]; } if(nCurSum > nGreatestSum){ nGreatestSum = nCurSum; } } return nGreatestSum; }}
0 0
- 剑指offer系列之29:连续子数组的最大和
- 【剑指offer系列】 连续子数组的最大和___31
- 剑指offer系列之二十九:连续子数组的最大和
- 剑指Offer之连续子数组的最大和
- 剑指Offer之 - 连续子数组的最大和
- 剑指offer之连续子数组的最大和
- 【剑指offer】之连续子数组的最大和
- 剑指offer(三十九)之连续子数组的最大和
- 剑指offer之连续子数组的最大和
- 剑指offer系列源码-最大子向量和(连续子数组的最大和)
- 【剑指offer之最大子向量和(连续子数组的最大和)】
- 剑指offer-连续子数组的最大和----编程之美-连续子数组的最大和
- [剑指offer]连续子数组最大和
- 剑指offer-最大连续子数组和
- 剑指offer:连续子数组最大和
- 剑指offer---连续子数组最大和
- 【剑指offer】连续子数组最大和
- 剑指Offer系列-面试题31:连续子数组的最大和
- Android实现自己的回调函数
- IOS UTI(统一类型标识符) 根据文件后缀打开APP
- axiom解析xml
- 《Fully Convolutional Network for Semantic Segmentation》的阅读分享
- Log4j.properties配置详解
- 剑指offer系列之29:连续子数组的最大和
- zzulioj1863(模拟&打表)
- imx6 V4L2视频采集和播放(输入video0,输出为video17)
- SOLID
- jQuery表单选择器
- win8窗口焦点频繁失去再恢复
- Fragment创建多个fragment实例
- union和union all的区别
- iOS学习笔记20-地图(二)MapKit框架