题外话
觉得这个内容还是很关键的,过来写一下吧
本次内容有点抽象大家试着听一下
正题
做过算法题的人都知道,无论是在力扣还是牛客或者别的网站刷题,很多情况下都会遇到输入输出的情况,当我们用Scanner和System.out.print()就有可能产生超时问题
如下图
接下来会有一段代码,我会带大家搞懂每段代码是做什么的
import java.io.PrintWriter;
import java.util.StringTokenizer;
import java.io.*;
public class AlogrithmDemo04 {
//将字节流转换成字符流,当我们打印输出的时候我们把打印数据放到内存缓冲区里面
//最后会把缓冲区数据统一放到文件里面
public static PrintWriter out =new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));
public static Read in = new Read();
public static void main(String[] args) throws IOException
{
// 写代码
out.close();
}
}
class Read // 自定义快速读入
{
//字符串裁剪
StringTokenizer st = new StringTokenizer("");
//将字节流转换成带内存缓冲区的字符流
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
String next() throws IOException
{
//后面还有数据就进行循环
while(!st.hasMoreTokens())
{
//从字符缓冲区拿一行数据交给st裁剪
st = new StringTokenizer(bf.readLine());
}
return st.nextToken();
}
//裁剪出来的转换成字符串型
String nextLine() throws IOException
{
return bf.readLine();
}
int nextInt() throws IOException
{
return Integer.parseInt(next());
}
long nextLong() throws IOException
{
return Long.parseLong(next());
}
double nextDouble() throws IOException
{
return Double.parseDouble(next());
}
}
当然,我们写算法题的时候如果不出现因为用Scanner和System.out超时情况,其实不需要使用这个
但是一旦出现因为以上情况超时一定要使用上述代码
大家尽量去理解,实在不行就硬背下来吧
小结
千锤百炼算法系列持续更新中...
喜欢的家人们麻烦给个三连(点赞关注收藏!!!)