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

题目



题目地址

思路


用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);
	}
}
posted @ 2016-03-04 10:43  Sundy.Lee  阅读(310)  评论(0编辑  收藏  举报