最大子数组

给定一个整数数组,找到一个具有最大和的子数组,返回其最大和。

样例

给出数组[−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;
}
}

最新文章

  1. BZOJ2342 Manacher + set
  2. css005 用层叠管理多样式
  3. sqlserver 解析Json字符串
  4. Nuget 管理entity framework
  5. HDU 4044 GeoDefense(动态规划)
  6. map reduce filter
  7. 防止sql注入。xss攻击 方法
  8. 定位 - CoreLocation - 区域报警
  9. 软件安装(JDK+MySQL+TOMCAT)
  10. 不干胶打印机 www.bgjdyj.com
  11. Rails Migration Data Model栏位修改及数据类型介绍
  12. JSP之Cookie的实现
  13. 【机器学习】--LDA初始和应用
  14. C++ Coroutine简明教程
  15. 更多FMK 的还是看万一的吧
  16. 廖雪峰Java2面向对象编程-6Java核心类-4JavaBean
  17. 【ARC082E】ConvexScore
  18. Word2007的自动插入题注!
  19. spring监听与IBM MQ JMS整合
  20. DZ拿shell总结

热门文章

  1. Spring Boot应用中的异常处理
  2. 51Nod 1092 回文字符串 | 最长公共子序列变形
  3. PHP扩展--APC缓存安装与使用
  4. os模块学习(转)
  5. Java——Read/convert an InputStream to a String
  6. Codeforces Round #482 (Div. 2) B题
  7. 边缘检测:Canny算子,Sobel算子,Laplace算子
  8. Nodejs mac版安装
  9. Part1-HttpClient快速入门案例
  10. Python学习笔记 - day12 - Python操作NoSQL