这个算法系列是跟随b站左程云老师学习的,我只是做了简单的总结和收获,如果想要详细了解,可以去翻看老师的视频。
只解释一遍哈
输入输出的处理
算法题目的两种风格:函数风格(接口型) 和 ACM风格(IO型)。
函数风格在力扣中多见(左半图);而洛谷中为ACM风格(右半图)
ACM风格在比赛和笔试过程中更加常见且更为复杂,它要求做题人自己处理输入和输出,而不是像函数风格那样只完成基本逻辑。因此,我们重点讨论ACM风格下的输入输出技巧。
为了避免频繁IO,不用Scanner
、System.out
的方式,要使用java.io
包中的BufferedReader
、BufferedWriter
、StreamTokenizer
等组件。具体操作见模版:
public static void main(String[] args) throws IOException {
try(BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)))) {
StreamTokenizer in = new StreamTokenizer(br);
while(in.nextToken() != StreamTokenizer.TT_EOF) {
int numInt = (int) in.nval;
in.nextToken();
double numDouble = in.nval;
in.nextToken();
String s = in.sval;
out.println();
}
out.flush