我刚刚做了USACO / Number Triangles ex,发现了一个关于读取文件的问题。我使用过" Scanner"首先读入文件,但测试9失败了,因为运行时间是1.8秒,超过了限制1.3秒。然后,我使用" StreamTokenizer"读入文件,最后清除所有测试。此时,测试9仅花费0.38秒。我不知道为什么" Scanner"之间存在如此大的差异。和" StreamTokenizer"。
"扫描器"代码:
Scanner sc = new Scanner(new FileReader("numtri.in"));
int n= sc.nextInt();
int Array[][] = new int[n][n];
for(int i=0;i<n;i++){
for(int j=0;j<=i;j++){
Array[i][j]=sc.nextInt();
}
}
&#34; StreamTokenizer极&#34;代码:
StreamTokenizer sc = new StreamTokenizer(new BufferedReader(new FileReader("numtri.in")));
int nextInt() throws IOException
{
sc.nextToken();
return (int)sc.nval;
}
int n = nextInt();
int Array[][] = new int[n][n];
for(int i=0;i<n;i++){
for(int j=0;j<=i;j++){
Array[i][j]=nextInt();
}
}