import java.util.Scanner;
class Little_elephant
{
public static void main(String args[])
{
Scanner scan = new Scanner(System.in);
int t = scan.nextInt();
int arr[] = new int[100];
int inversions, localInversions;
for(int i = 0; i < t; i++)
{
inversions = 0;
localInversions = 0;
int n = scan.nextInt();
for(int j = 0; j < n; j++)
{
arr[j] = scan.nextInt();
}
for(int j = 0; j < n - 1; j++)
{
for(int k = j + 1; j < n; k++)
{
if(arr[j] > arr[k])
{
inversions++;
}
}
if(arr[j] > arr[j+1])
localInversions++;
}
if(inversions == localInversions)
System.out.println("YES");
else
System.out.println("No");
}
}
}
}
程序在编译时没有显示错误,但是在第23行获得了数组索引超出范围的异常。此错误是当我尝试多于一种情况,即t> 1时。请有人帮助我!
答案 0 :(得分:1)
你有一个循环for(int k = j + 1; j < n; k++)
您正在增加k
,但条件是j
答案 1 :(得分:0)
第21行的k嵌套for循环没有说明k的终止子句,而是j。所以现在你的循环看起来像这样:
for(int k = j + 1; j < n; k++)
它应该说:
for(int k = j + 1; k < n; k++)
注意k小于n,而不是小于n。