java求最大子序列
来源:互联网 发布:软件辅助工作室 编辑:程序博客网 时间:2024/06/06 16:13
题目解释:给定一个整数序列,a0, a1, a2, …… , an(项可以为负数),求其中最大的子序列和。如果所有整数都是负数,那么最大子序列和为0;
例如:对于序列-2, 11, -4, 13, -5, –2。 所求的最大子序列和为20(从11到13,即从a1到a3)。
/** * Created by ShoppingChen on 2017/9/5. */public class MaximumSequence { private int[] data = new int[]{-2,11,-4,13,-5,-2}; public MaximumSequence(){ Log.d("MaximumSequence",getMaximumSequence()+""); } public int getMaximumSequence(){ int result = 0; int resultMax = result; int cache = 0; boolean isHead = true; for(int i = 0;i<data.length;i++){ if(isHead){ if(data[i]<=0){//过滤掉 第一个 和后边连续较大的 负数 continue; }else{ //第一次遇到正数,即为临时最大子序列的值 isHead=false; resultMax = data[i]; result = data[i]; continue; } } if(data[i] >= 0){ result += data[i]; resultMax = (result>resultMax) ? result:resultMax; }else{ cache = result+data[i]; if(cache < 0){//如果相加值为负数,则直接跳出,重走流程 isHead = true; result = 0; continue; }else { result = cache; } } } return resultMax; }}
时间复杂度为 O(n);
在网上看到好多,按照自己的想法,做了一下改进,凡事都要自己尝试一下嘛。
阅读全文
1 0
- java求最大子序列
- JAVA 求最大子序列和 算法
- 求最大子序列
- 求最大子序列
- 求最大子序列
- 求最大子序列
- 求最大子序列和
- 求最大子序列之和
- 求最大子序列和
- 求最大子序列和
- 求最大子序列和
- 求最大和子序列
- 求最大和子序列
- 求最大子序列和
- 求最大子序列和
- hdu1003求最大子序列
- 求最大子序列和
- 求最大子序列和
- input表单内添加单位或者文字或者图标的方法
- CodeForces
- 网易2018校招内推--01交替串
- 用画小狗的方法来解释Java中的值传递
- 账户相关属性验证工具
- java求最大子序列
- android沉浸式状态栏、变色状态栏、透明状态栏、修改状态栏颜色及透明
- cron的使用
- elk监控tomcat日志
- Vue学习笔记十一
- java 生成二维码 log 标签
- vimの随时做运算
- Rxjava简单解析
- 个人小项目:现有12个小球和一个天平,小球中有一个重量与其它的不同,称重几次能将这个小球找出来