网易云数据结构-最大子列和问题
题目
思路
用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);
}
}