java 得到最大总和的子阵列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 得到最大总和的子阵列相关的知识,希望对你有一定的参考价值。

import java.util.ArrayList;
import java.util.List;

public class SubarrayWithMaxSum {

  public static void main(String[] args) {
		// TODO Auto-generated method stub
		int[] A= {1, -3, 2, 1, -1};
		ArrayList result = subarrayWithMaxSum(A);
		System.out.println(result.toString());
	}
	
	public static ArrayList<Integer> subarrayWithMaxSum(int[] A){
		int n = A.length;
		int local_max = 0;
		int global_max = Integer.MIN_VALUE;
		  
		ArrayList<Integer> list = new ArrayList<Integer>();
		
		for(int i = 0; i < n; i++){
			int current = A[i];
			local_max = Math.max(current, current + local_max);
			if(current > current+local_max){
					list.clear();
			}
			if(local_max > global_max){
				list.add(A[i]);
				global_max = local_max;
			}else{
				
			}
		}
		return list;
	}

}

以上是关于java 得到最大总和的子阵列的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp 最大子阵列总和。在具有最大总和的数组(包含至少一个数字)中查找连续的子数组。

java 最大子阵列总和

java 325.最大大小子阵列总和等于k(#)。java

java 325.最大大小子阵列总和等于k(#)。java

java 325.最大大小子阵列总和等于k(#)。java

java 325.最大大小子阵列总和等于k(#)。java