java 求连续子数组的最大和
来源:互联网 发布:淘宝代销邮费算谁的 编辑:程序博客网 时间:2024/04/29 06:03
题目:
输入一个整型数组,里面有正数也有负数,数组中一个或连续多个整数组成一个子数组,求所有子数组和的最大值。要求时间复杂度为O(n)
解题思路:
从头到尾遍历整个数组,用一个整数记录子数组和的最大值,如果子数组和大于这个值,则更新最大值,如果子数组和为负,子数组和清零,然后继续往后遍历。考虑数组全是负数、数组为空等边界情况即可。
算法如下:
public class Solution { public int FindGreatestSumOfSubArray(int[] array) { if(array==null||array.length==0){ return 0; } int sum = 0; int maxSum = 0; int maxNumber = Integer.MIN_VALUE; for(int i=0;i<array.length;i++){ if(array[i]>maxNumber){ maxNumber = array[i]; } } if(maxNumber<0){ return maxNumber; } for(int i=0;i<array.length;i++){ sum = sum+array[i]; if(sum>maxSum){ maxSum = sum; } if(sum<0){ sum = 0; } } return maxSum; }}
1 0
- java求连续子数组的和最大
- java 求连续子数组的最大和
- 求连续子数组的最大和
- 求连续子数组的最大和
- 求连续子数组的最大和
- 求连续子数组的最大和
- 求连续子数组的最大和
- 求连续子数组的最大和
- 求连续子数组的最大和
- 求连续子数组的最大和
- 求连续子数组的最大和
- 求连续子数组的最大和
- 求连续子数组的最大和
- 求连续子数组的最大和
- 求连续子数组的最大和
- 求连续子数组的最大和
- 求连续子数组的最大和
- 求连续子数组的最大和
- linux服务器时间同步——ntpdate 172.20.0.191
- oracle存储过程语法二
- java 版 A*寻路算法具体过程
- JavaScript中的call和apply
- HashMap深度解析(一)
- java 求连续子数组的最大和
- linux下安装配置redis服务
- iOS 9 新特性之实现 3D Touch 就是 So easy -- OC版
- 关于redis集群方案
- 关于类的问题
- iOS开发基础 - 常用方法
- 项目中遇到的零散问题(Sqlserver方面)
- NDK 编辑C/C++ SO库
- EditText 相关