Что такое эффективный способ правого поворота списка по кругу в python без встроенной функции - PullRequest
0 голосов
/ 06 февраля 2020
def circularArrayRotation(a, k, queries):
    temp=a+a
    indexToCountFrom=len(a)-k

    for val in queries:
       print(temp[indexToCountFrom+val])

У меня есть этот код для выполнения поворота.

Эта функция принимает список как a, количество времени, которое нужно повернуть как k, и последний - это запрос, который представляет собой список, содержащий индексы, значение которых необходимо после поворота.

Мой код работает для всех случаев, кроме некоторых более крупных.

Где я делаю это неправильно?

ссылка: https://www.hackerrank.com/challenges/circular-array-rotation/problem

1 Ответ

1 голос
/ 06 февраля 2020

Вы, вероятно, столкнетесь с таймаутом, когда объедините большие списки с помощью temp = a + a.

Вместо этого не создавайте новый список, а используйте оператор modulo в вашем l oop:

   print(a[(indexToCountFrom+val) % len(a)])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...