网易云数据结构-最大子列和问题

题目


题目地址

思路

用tempsum不停的更新maxsub就行了。这是道思维题,并没有什么用到经典算法。

if (tempsum > maxsub)
{
    maxsub = tempsum;
}
最后输出maxsub就可以了。

代码

import java.util.Scanner;

public class Main
{
    public static void main(String[] args)
    {
        Scanner in = new Scanner(System.in);

        // 读入k个数据
        int k = in.nextInt();
        int arr[] = new int[k + 1];

        for (int i = 1; i <= k; i++)
        {
            arr[i] = in.nextInt();
        }

        // 处理数据
        int maxsub = 0;
        int tempsum = 0;
        for (int i = 1; i < arr.length; i++)
        {
            tempsum += arr[i];
            if (tempsum > maxsub)
            {
                maxsub = tempsum;
            }
            if (tempsum < 0)
            {
                tempsum = 0;
            }
        }

        System.out.println(maxsub);
    }
}

你可能感兴趣的:(网易云数据结构-最大子列和问题)