最大子段和问题
2016-05-04 23:23
337 查看
题目:HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。你会不会被他忽悠住?、
思路:动态规划,请参考另一篇博客:/article/5225766.html
思路:动态规划,请参考另一篇博客:/article/5225766.html
import java.util.*; public class Solution { public int FindGreatestSumOfSubArray(int[] array) { if(array == null || array.length <= 0) return 0; int sum = 0; int max = 0; int count = 0; for(int i=0; i<array.length; i++) { if(array[i] < 0) count ++; if(sum <= 0) { sum = array[i]; } else { sum += array[i]; } if(max < sum) max = sum; } return count==array.length?max(array):max; } public int max(int[] a) { int max = Integer.MIN_VALUE; for(int i=0; i<a.length; i++) { if(max < a[i]) max = a[i]; } return max; } }
相关文章推荐
- 用Haskell来AC
- 【解决】Adobe premiere CC 已停止工作
- NULL EOF 区别
- 内核listen的backlog和简单的三次握手分析
- 29.IntelliJ IDEA 常用设置讲解 - IntelliJ IDEA 使用教程
- JavaScript之单例实战
- 记大学规划——大一
- 膝盖中了一箭之康复篇-第十个月暨4月份目标总结
- 最容易读进去的深度学习科普贴
- MediaController
- 图解使用PowerTool对Windows内核做初步研究探索
- 28.数据库管理工具介绍 - IntelliJ IDEA 使用教程
- SAX解析
- java是值传递还是引用传递。
- SDAU dp专题 1004
- Hadoop 2.x Hdfs Shell 命令
- 27.重构讲解 - IntelliJ IDEA 使用教程
- ZZUOJ10407 最大岛屿
- vc++编译连接原理与过程
- JSP处理流程图示