浅谈 刷算法题时遇到运行超时异常 的解决办法

一、背景介绍

最近在牛客、leetcode 刷算法题时发现一个奇怪的问题,明明解题思路、所用算法与题解一致,并且在本地IDE运行是通过的,但是在牛客、leetcode 却没办法AC,出现一个叫做 运行超时 的异常。通过查阅资料、反复验证之后,找出了一个有效的解决办法。
在这里插入图片描述

二、解决办法

2.1 C/C++ 语言

针对使用 C/C++ 语言刷算法题遇到 运行超时异常 问题的同学,可以将输入/输出 换成 scanf/printf,此时极大概率就能通过

2.2 Java 语言

针对使用 Java 语言刷算法题时遇到 运行超时异常 问题的同学,就比较麻烦了,需要速记牢背一个 Java快速 IO 的模板,牢记这个模板之前我们需要先了解牛客、leetcode 在刷算法题时给我们提供的 ACM模式进行编程时(一般会给出两种模式进行编写代码,1、核心代码模式,即给出一个函数/方法,在此函数里书写题目的解决逻辑即可。2、ACM模式:给出Main类、main方法,其他没给出,需要书写解题时需用到的全部代码,包括引入的包名,都需要自己手动书写。一般工作时笔试中,做编程题时,给出的都是ACM模式),其进行I/O的流程。

2.2.1 ACM模式下 Java的I/O原理

对于 ACM模式 下,Java 进行 I/O的流程:
输入情况下(Java 使用 new Scanner(System.in) 进行输入数据):
在这里插入图片描述
输出情况下(Java 使用 System.out 进行输出数据):
在这里插入图片描述
从上述ACM模式下进行输入输出的原理图中,我们就能清楚知道使用 Java 自带的 Scanner / System.out 进行输入输出时,每次 输入/输出 都需要访问I/O设备,但访问一次I/O设备又是很慢的,因此代码量庞大的情况下,就会出现 运行超时异常问题。

Java 快速 I/O 模板:

import java.util.*;
import java.io.*;

public class Main
{
   
   
    public static PrintWriter out = new PrintWriter(new BufferedWriter
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值