关于StringTokenizer输入方式在PTA报错的问题

今天第一次用PTA,就遇到了令人无比头疼的问题:StringTokenizer输入方式在PTA报错
做的是mooc浙大数据结构课程的最大子列和作业,试了试暴力求解的方法,代码如下:

public static void main(String[] args) throws IOException {
	Scanner reader = new Scanner(System.in);
	int N;
	N = reader.nextInt();
	int[] A = new int[N];
            //优化前
	for (int i = 0; i < A.length; i++) {
		A[i] = reader.nextInt();
	}
            //StringTokenizer优化
            //readIntegers(N,A);	
	System.out.println(MaxSubseqSum2(N, A));
}

            

//StringTokenizer优化
/** Read count integers using BufferedReader */
static void readIntegers(int count, int[] A) 
		throws IOException {
	InputStreamReader a = new InputStreamReader(System.in);
	BufferedReader reader = new BufferedReader(a);
	StringTokenizer tokenizer = new StringTokenizer("");
	int last = 0;
	while (count-- > 0) {
		if (! tokenizer.hasMoreTokens() ) {
			tokenizer = new StringTokenizer(reader.readLine());
		}
		A[last] = Integer.parseInt(tokenizer.nextToken());
		last++;
	}
}

static int MaxSubseqSum2(int N, int[] A) {
	int MaxSum = 0;
	int ThisSum = 0;
	for(int i = 0; i < N; i++) {
		ThisSum = 0;
		for(int j = i; j < N; j++) {
			ThisSum += A[j];
			if(ThisSum > MaxSum) {
				MaxSum = ThisSum;
			}
		}
	}
		return MaxSum;
}

在没有优化前,原本的代码在数据较小时都没有出错,PTA的结果是因为测试到个100000随机数时会内存超限,所以我按照zhrb老师的文章《PTA上提交Java程序的一些套路》(https://www.cnblogs.com/zhrb/p/6347738.html#4901102)
第7.7节的内容结合使用了StringTokenizer进行处理输入,详细见上面注释了优化的代码,eclipse上跑没问题,但是PTA报错了,前后两次只有输入的方法不同,却开始报答案错误了······
头疼,在老师博客底下求助了,不知道会不会有回应,后续如果问题解决了会来更新的!
最后贴个图(模糊的话右键新标签打开放大即可)~
image

posted @ 2021-07-03 21:54  二氧化碳嗝  阅读(102)  评论(0)    收藏  举报