千锤百炼之算法Scanner和System.out引起超时解决办法

ops/2024/10/25 18:34:56/

题外话

觉得这个内容还是很关键的,过来写一下吧

本次内容有点抽象大家试着听一下

正题

做过算法题的人都知道,无论是在力扣还是牛客或者别的网站刷题,很多情况下都会遇到输入输出的情况,当我们用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超时情况,其实不需要使用这个

但是一旦出现因为以上情况超时一定要使用上述代码

大家尽量去理解,实在不行就硬背下来吧

小结

千锤百炼算法系列持续更新中...

喜欢的家人们麻烦给个三连(点赞关注收藏!!!)


http://www.ppmy.cn/ops/8345.html

相关文章

vue-router学习2:路由导航方式

声明式导航 声明式导航方式在Vue Router中主要通过<router-link>组件来实现&#xff0c;它允许你直接在模板中创建导航链接&#xff0c;而无需编写额外的JavaScript代码。以下是一些常见的声明式导航方式及其示 1. 基本的导航链接 使用<router-link>组件&#x…

【Spring】Spring MVC入门

Spring MVC入门 一、什么是Spring Web MVC&#xff1f; 1.1 MVC定义 MVC是Model View Controller的缩写&#xff0c;是一种软件架构的设计模式&#xff0c;将软件系统分为模型、视图、控制器三个部分。 示意图如下: 可以看到&#xff0c;Controller作为一个“粘合剂”处于M…

政安晨:【深度学习神经网络基础】(八)—— 神经网络评估回归与模拟退火训练

目录 简述 评估回归 模拟退火训练 政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 收录专栏: 政安晨的机器学习笔记 希望政安晨的博客能够对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff01; 简述 深度学习神经网…

纽扣电池卖家注意!美国纽扣电池UL4200A标准更新

2023年9月21日&#xff0c;美国消费品安全委员会CPSC(Consumer Product Safety Commission) 决定采用UL 4200A-2023&#xff08;包含纽扣电池或硬币电池的产品安全标准&#xff09;作为包含纽扣电池或硬币电池的消费品的强制性消费品安全规则&#xff0c;相关要求同时被编入到1…

【数据结构】时间复杂度的例题

&#x1f381;个人主页&#xff1a;我们的五年 &#x1f50d;系列专栏&#xff1a;数据结构 &#x1f337;追光的人&#xff0c;终会万丈光芒 前言&#xff1a; 这篇文章是关于时间复杂度的一些例题&#xff0c;关于时间复杂度和空间复杂度和算法的计算效率的基本知识点我放在…

Java中的static

我们在写Java的程序的过程中总是会看到static&#xff0c;但是你知道他的性质和用法及其原因吗 package com.java.picture;public class StudentB {private String name;private int age;private String gender;public StudentB() {}public StudentB(String name, int age, S…

Proxyman Premium for Mac v5.1.1激活版:卓越的网络调试与分析工具

Proxyman Premium for Mac是一款功能强大的网络调试与分析工具&#xff0c;专为开发人员和测试人员精心打造。它集多种功能于一身&#xff0c;为用户提供了全面、高效的网络开发体验。 Proxyman Premium for Mac v5.1.1激活版下载 作为一款跨平台代理工具&#xff0c;Proxyman …

JMeter--逻辑控制器--仅一次控制器

仅一次控制器&#xff08;Once Only Controller&#xff09; 可以让控制器内部的逻辑只执行一次&#xff1b;单次的范围是针对某一个线程&#xff0c;无论线程外面迭代多少次或者里面循环多少次&#xff0c;均只执行一次&#xff1b;单次控制器一般可用于登陆&#xff…