Java实现——数组中连续元素子数组的和最大

来源:互联网 发布:申请淘宝达人网址 编辑:程序博客网 时间:2024/06/18 18:40

转自几个面试经典算法题Java解答(http://www.cnblogs.com/sunniest/p/4596182.html)题目五

//求数组中一个或连续多个元素组成子数组中,和最大的子数组。时间复杂度O(n)
public class SubArraySumMax {public int findSubMax(int[] array){int curSum = 0;int maxSum = -999999999;int start = 0;int end = 0;for(int i = 0 ; i < array.length ; i++){if(curSum <= 0){curSum = array[i];start = i;}else{curSum += array[i];}if(curSum > maxSum){maxSum = curSum;end = i;}}for(int i = start ; i <= end ; i++){System.out.print(array[i] + " ");}System.out.println();return maxSum;}public static void main(String[] args) {SubArraySumMax sa = new SubArraySumMax();int[] array = {-2 , 3 , 1};System.out.println(sa.findSubMax(array));}}


阅读全文
0 0