最大子数组(LintCode)
2024-08-23 22:05:46
最大子数组
给定一个整数数组,找到一个具有最大和的子数组,返回其最大和。
样例
给出数组[−2,2,−3,4,−1,2,1,−5,3]
,符合要求的子数组为[4,−1,2,1]
,其最大和为6
注意
子数组最少包含一个数
挑战
要求时间复杂度为O(n)
若当前和小于0,那么加到下一个数上必然会使和减小,此时抛弃这个和重新求和。当遇到一个负数时,记录下当前已知的最大和。
总耗时: 2721 ms
public class Solution {
/**
* @param nums: A list of integers
* @return: A integer indicate the sum of max subarray
*/
public int maxSubArray(int[] nums) {
int sum = nums[0];
int max = nums[0];
for(int i = 1 ;i < nums.length ;i++) {
if(nums[i] < 0) {
if(sum > max) max = sum;
} if(sum < 0) {
sum = nums[i];
}else {
sum+=nums[i];
}
}
return max>sum?max:sum;
}
}
最新文章
- BZOJ2342 Manacher + set
- css005 用层叠管理多样式
- sqlserver 解析Json字符串
- Nuget 管理entity framework
- HDU 4044 GeoDefense(动态规划)
- map reduce filter
- 防止sql注入。xss攻击 方法
- 定位 - CoreLocation - 区域报警
- 软件安装(JDK+MySQL+TOMCAT)
- 不干胶打印机 www.bgjdyj.com
- Rails Migration Data Model栏位修改及数据类型介绍
- JSP之Cookie的实现
- 【机器学习】--LDA初始和应用
- C++ Coroutine简明教程
- 更多FMK 的还是看万一的吧
- 廖雪峰Java2面向对象编程-6Java核心类-4JavaBean
- 【ARC082E】ConvexScore
- Word2007的自动插入题注!
- spring监听与IBM MQ JMS整合
- DZ拿shell总结
热门文章
- Spring Boot应用中的异常处理
- 51Nod 1092 回文字符串 | 最长公共子序列变形
- PHP扩展--APC缓存安装与使用
- os模块学习(转)
- Java——Read/convert an InputStream to a String
- Codeforces Round #482 (Div. 2) B题
- 边缘检测:Canny算子,Sobel算子,Laplace算子
- Nodejs mac版安装
- Part1-HttpClient快速入门案例
- Python学习笔记 - day12 - Python操作NoSQL