这个问题来自G4G数组旋转。我在第二个循环中收到错误,告诉我数组超出了范围。但我不明白为什么。
import java.util.Scanner;
public class timba {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n, d;
n = sc.nextInt();
d = sc.nextInt();
int[] arr = new int[n];
for (int i = 0; i < arr.length; i++) {
arr[i] = sc.nextInt();
}
while (d > 0) {
int t;
t = arr[0];
for(int j = 0; j < arr.length; j++) {
arr[j] = arr[j+1];
}
arr[n-1] = t;
d--;
}
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}
最佳答案
在第二个循环内,j + 1
一旦 j 达到 arr.length - 1,索引就会出界,因为索引从 0 开始,因此它应该是 j < arr.length - 1
关于java - 使用杂耍算法进行数组旋转失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61191127/