Круговой массив Вращение Hackerrank - PullRequest
0 голосов
/ 31 марта 2020

Вот ссылка на проблему, которую я решал на Hackerrank: - 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]);
            }
        }
    }

}

1 Ответ

1 голос
/ 31 марта 2020

Ты почти у цели! Вы забываете случай, когда k больше длины массива (т.е. более одного цикла); поэтому вы должны ограничить его только одним циклом.

a[(n - (k % n) + m) % n];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...