还不会做最大子段和?


一次由 Scanner(System.in) 引起的 TLE)。
import java.io.*;
import java.util.*;

public class Main {
	public static StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
	public static int nextInt() throws IOException {
		in.nextToken();
		return (int)in.nval;
	}
	public static void main(String[] args) throws IOException {
		int n = nextInt();// 快速读数据
		int sum = 0; // 记录当前前缀和
		int max = Integer.MIN_VALUE; // 记录最大子段和
		int min = 0; // 记录当前位置之前最小前缀和
		for (int i = 0; i < n; ++i) {// 读取数据同时计算前缀和
			sum += nextInt(); // 读取数据同时计算当前前缀和
			max = Math.max(max, sum-min); // 当前最大子段和等于当前前缀和减去最小前缀和
			min = Math.min(min, sum); // 计算最小前缀和
		}		
		System.out.println(max);
	}
}