一般做算法题输出都是直接使用
System.out.println();
刷一行输出即可,
但是今天做了一道题,JAVA和C给的限制时间都是1S,提交了几次都超时,纳闷极了,于是把设计的算法注释掉,只输出获得的输入,像这样:
for(int i=0;i<n;i++) {
A[i]= sc.nextInt();
}
...//注释掉算法实现
for(int i=0;i<n;i++){
System.out.println(Answer[i]);
}
竟然也超时!!!
于是开始反思是不是输入输出消耗时间过长。
开始先试验输入方法
使用
Scanner sc = new Scanner(new BufferedInputStream(System.in));
替代
Scanner sc = new Scanner(System.in);
make no sense~
然后想到会不会是输出的for循环耗时太长,把for循环去掉,只输出默认值。
提示WA! good news !
看来是输出的时间问题。
想到将for循环改为一次性输出
StringBuildersb = new StringBuilder();
sb.append(Answer[i]);
sb.append(" ");
每次计算出来加到sb末尾.
然后果然Accept!
JAVA的IO耗时问题是超时时候要重点考虑的。