圆形阵列旋转 Hackerrank
Circular Array Rotation Hackerrank
这是我在 Hackerrank 上解决的问题的Link:-https://www.hackerrank.com/challenges/circular-array-rotation/problem
这是我的代码,此代码通过了除第四次测试之外的所有测试用例,有人请帮我看看这里出了什么问题。
public class Solution {
public static void main(String[] args) {
try(Scanner in = new Scanner(System.in)) {
int n = in.nextInt();
int k = in.nextInt();
int q = in.nextInt();
int a[] = new int[n];
for(int i = 0; i < n; i++)
a[i] = in.nextInt();
for(int i = 0; i < q; i++) {
int m = in.nextInt();
System.out.println(a[(n - k + m) % n]);
}
}
}
}
你快完成了!您忘记了 k
大于数组长度的情况(即不止一个循环);所以你必须将它限制为一个周期。
a[(n - (k % n) + m) % n];
这是我在 Hackerrank 上解决的问题的Link:-https://www.hackerrank.com/challenges/circular-array-rotation/problem
这是我的代码,此代码通过了除第四次测试之外的所有测试用例,有人请帮我看看这里出了什么问题。
public class Solution {
public static void main(String[] args) {
try(Scanner in = new Scanner(System.in)) {
int n = in.nextInt();
int k = in.nextInt();
int q = in.nextInt();
int a[] = new int[n];
for(int i = 0; i < n; i++)
a[i] = in.nextInt();
for(int i = 0; i < q; i++) {
int m = in.nextInt();
System.out.println(a[(n - k + m) % n]);
}
}
}
}
你快完成了!您忘记了 k
大于数组长度的情况(即不止一个循环);所以你必须将它限制为一个周期。
a[(n - (k % n) + m) % n];