gpt4 book ai didi

java - 我的代码遇到了运行时错误,有人可以帮我找出我哪里错了

转载 作者:行者123 更新时间:2023-12-03 08:49:23 24 4
gpt4 key购买 nike

我在下面给出的代码中遇到运行时错误-NZEC。我无法理解为什么。有人可以帮我解决这个问题。

问题陈述:一个城市中存在各种信号塔。塔沿水平直线排列(从左到右),并且每个塔沿从右到左的方向传输信号。塔A将阻止塔B的信号如果塔B的左侧存在塔A,而塔A的高度则高于塔B。因此,给定塔的信号范围可以定义为:

{(在给定塔的左侧,其高度小于或等于给定塔的高度的连续塔的数量)+1}。

您需要找到每个塔的范围。

输入

第一行包含一个整数T,它指定测试用例的数量。

第二行包含一个整数n,用于指定塔数。

第三行包含n个以空格分隔的整数(H [i]),表示每个塔的高度。

输出值

打印每个塔的范围(以空格分隔)。

约束条件

1 <= T <= 10

2 <= n <= 10 ^ 6

1 <= H [i] <= 10 ^ 8

我的代码

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



class TestClass {
public static void main(String args[] ) throws Exception {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
int t=Integer.parseInt(br.readLine());
Scanner sc = new Scanner(System.in);
while(t!=0)
{
int n=Integer.parseInt(br.readLine());

int arr[]=new int[n-1];
int atest[]=new int[n-1];

for (int i=0;i<n;i++)
{
arr[i]=sc.nextInt();
}

for(int j=n-1;j>=0;j--)
{
int count=0;
int temp=j-1;
while(arr[j]>=arr[temp])
{

count++;
temp--;

}
atest[j]=count;
}

for(int k=0;k<n;k++)
{
System.out.println(atest[k]+1);
}

t--;

}



}
}

最佳答案

       int arr[]=new int[n-1];
int atest[]=new int[n-1];

for (int i=0;i<n;i++)
{
arr[i]=sc.nextInt();
}

因为数组长度是n-1(arr.length = n-1)

这就是为什么您得到ArrayIndexOutOfBoundsException的原因。

关于java - 我的代码遇到了运行时错误,有人可以帮我找出我哪里错了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45232701/

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