计蒜客编程之求最大子数列

来源:互联网 发布:sql服务器无法启动 编辑:程序博客网 时间:2024/05/16 23:48

在一个数组中找出和最大的连续几个数。(至少包含一个数)

例如:

数组A[] = [−2, 1, −3, 4, −1, 2, 1, −5, 4],则连续的子序列[4,−1,2,1]有最大的和6.

输入格式

第一行输入一个不超过1000的整数n。

第二行输入n个整数A[i]。

输出格式

第一行输出一个整数,表示最大的和。

样例输入

3
1 1 -2
样例输出

2


水解。。。

import java.util.*;public class Main {    public static void main(String[] args) {        Scanner s = new Scanner(System.in);        int a = s.nextInt();        int[] num = new int[a];        for (int i = 0; i < a; i++) {            num[i] = s.nextInt();        }        int max = num[0];        int sum,tempMax;        for (int m = 0; m < a; m++) {            tempMax = num[m];            sum = num[m];            for (int n = m+1; n < a; n++) {                sum += num[n];                if (tempMax < sum) {                    tempMax = sum;                }            }            if (max < tempMax) {                max = tempMax;            }        }        System.out.println(max);    }}
原创粉丝点击