数组最大子序列和
2014-09-22 12:57
232 查看
package com.google.android; public class GreatestSumOfSubArray { public static void main(String[] args) { int[] data = {1, -2, 3, 10, -4, 7, 2, -5};//null,{},{-1} if (data==null||data.length==0) { System.out.println("data is empty"); return; } int max = Integer.MIN_VALUE; int maxStart = 0, maxEnd = 0, start = 0; int sum = 0; for (int i = 0; i < data.length; ++i) { int n = data[i]; if (sum <= 0) {//sum+n<=n // 如果原来的和为负数,则只会拖n的后退,故开始新的子序列计算 sum = n; start = i; } else { sum += n; } if (sum > max) { max = sum; maxStart = start; maxEnd = i; } } System.out.println("Max Sum is "+max+" # ["+maxStart+","+maxEnd+"]"); for (int i = maxStart; i <= maxEnd && i < data.length; i++) { System.out.print(data[i] + "\t"); } } }
相关文章推荐
- 求一组整数数组中的连续子序列和的最大值
- [LeetCode] House Robber II 求循环数组中元素两两不相邻的子序列最大和
- 11.27交换数组、获取二进制序列的奇偶位并输出、从大到小输出三个数、求最大公约数。
- 最长公共子序列|最长公共子串|最长重复子串|最长不重复子串|最长回文子串|最长递增子序列|最大子数组和
- 笔试算法题(30):从已排序数组中确定数字出现的次数 & 最大公共子串和最大公共序列(LCS)
- 计算一个数组中最大子序列的和
- 数组的最大子序列和,积
- 求数组的连续子序列最大和
- 取数组中和最大的一段连续序列
- 数组最大子序列的和
- 百度2015校园招聘笔试题——求数组最大子序列和
- 求首尾相连数组的最大子序列和
- 【滴滴笔试】得到数组的最大子序列和
- 采用递归求数组里面求最大子序列的算法(手绘图解)
- 数组的最大连续子序列
- 数组连续子序列的最大和&最大积
- 求数组中和最大子序列
- 【100题】第三题(数组(元素可为正数、负数、0)的最大子序列和)
- 动态规划: 求一个一维整数数组的最大子序列和
- 数组中的最大递增子序列(Longest Increasing Subsequence<LIS>)