圆形阵列旋转 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];