gpt4 book ai didi

java - 阵列旋转 TLE(超出时间限制)

转载 作者:行者123 更新时间:2023-12-05 08:49:32 26 4
gpt4 key购买 nike

我真的很困惑,为什么我的 Java 代码无法正常工作,它在 Hacker Earth 上的 Code Monks 上提供了 TLE。这是 1 的链接

import java.util.Scanner;
class TestClass {
static int[] ar=new int[100001];
public static void main(String args[] ){
Scanner in=new Scanner(System.in);
byte t=in.nextByte();
while(t-->0){
int n=in.nextInt();
int k=in.nextInt()%n;
for(int i=0;i<n-k;i++)
ar[i]=in.nextInt();
for(int i=0;i<k;i++)
System.out.print(in.nextInt()+" ");
for(int i=0;i<n-k;i++)
System.out.print(ar[i]+" ");
System.out.println();
}
}
}

我不知道为什么它会给出 TLE 我认为存在一些无限循环。

网站上的问题是-

僧侣和旋转Monk 喜欢对数组进行不同的操作,因此作为 HackerEarth 学校的校长,他给新学生 Mishki 分配了一项任务。 Mishki 将获得一个大小为 N 的整数数组 A 和一个整数 K ,她需要在其中将数组按正确的方向旋转 K 步,然后打印结果数组。由于她是新来的学校,请帮助她完成任务。

输入:第一行将包含一个整数 T,表示测试用例的数量。对于每个测试用例:

  1. 第一行由两个整数N和K组成,N为数组元素个数,K为旋转步数。
  2. 下一行由N个空格分隔的整数组成,表示数组A的元素。输出:打印所需的数组。

约束:

1<=T<=20
1<=N<=10^5
0<=K<=10^6
0<=A[i]<=10^6

示例输入

1

5 2

1 2 3 4 5

示例输出

4 5 1 2 3

解释

这里的T是1,表示一个测试用例。

表示数组中元素的个数, 表示旋转的步数。

初始数组为:在第一次轮换中,5 将排在第一个位置,所有其他元素将从当前位置移动到前面的一个位置。现在,结果数组将是

在第二次轮换中,4 将排在第一个位置,所有其他元素将从当前位置向前移动一个位置。现在,结果数组将是

时间限制:每个输入文件 1.0 秒内存限制:256 MB来源限制:1024 KB

最佳答案

我不确定您的解决方案是否正确,但请尝试使用 StreamTokenizer 或 BufferedReader 而不是 Scanner。 Scanner 速度太慢,当您需要读取大量数据时可能会导致 TLE。

关于java - 阵列旋转 TLE(超出时间限制),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63864284/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com