package com.hnust.sorting;
import java.util.Scanner;
/**
* 求一个数组的最大子列和
* 此种解法的时间复杂度为:O(n),是最快的解法。
* */
public class Solution {
static int[] A = new int[2];
int maxnum = 0;//最大和
int nownum = 0;//当前和
public int theMaxNum(int[] A){
int m = A.length - 1;
for( int i = 0; i <= m; i++ ) {
nownum += A[i];
if( nownum > maxnum)
maxnum = nownum;
else if(nownum < 0)
nownum = 0;
}
System.out.println(maxnum);
return maxnum;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int[] A = new int[n];
for( int i = 0; i < n; i++) {
A[i] = in.nextInt();
}
new Solution().theMaxNum(A);
}
}
求数组的最大子列和
最新推荐文章于 2020-10-21 21:41:24 发布