3.最大连续子序列之和

思路:

使用for循环,将所有的子序列的都相加取和,每次得到一个子序列的和都与当前得到的最大和比较,更新最大和。

代码实现:

a. 定义一个方法,用于返回最大子序列和,在main方法中调用:

public static int max(int[] arr) {
		int sum=0;//最大和
		for(int i=0;i<arr.length;i++) {
			int flag=0;//中间值
			for(int j=i;j<arr.length;j++) {
				flag=arr[j]+flag;//当前的子序列的和
				if(sum<=flag) {//更新最大和
					sum=flag;
				}
			}	
		}
		return sum;
	}

b. 完整代码如下:

public class Max_Sub {
	public static int max(int[] arr) {
		int sum=0;
		for(int i=0;i<arr.length;i++) {
			int flag=0;
			for(int j=i;j<arr.length;j++) {
				flag=arr[j]+flag;
				if(sum<=flag) {
					sum=flag;
				}
			}	
		}
		return sum;
	}
	public static void main(String[] args) {
		int a[] = {1,2,3,4,5};
		int b[] = {-1,-2,5,-2,7,-3};
		System.out.println(max(a));
		System.out.println(max(b));
	}
}

猜你喜欢

转载自blog.csdn.net/qq_38442065/article/details/80513912