LeetCode - проблема с проверкой результата

Я тут, в общем, решил качать мозги и порешать задачки на LeetCode. Проблема в том, что у меня есть вопросы к самому сервису, а не задачам. Допустим, вот есть задача про Rotate Array, мое решение выглядит как-то так (пусть оно даже неверное):

код

Проблема в том, что сама система не ждет возрата результата и как бы я не пытался - всегда выдает мне результат, что изначально сама и заложила в числах. В чем прикол? Что я должен сделать, ведь я решил, а программа не хочет видеть мое решение. Когда-то уже сталкивался с такой же проблемой на Яндекс Практикум. Ничего не понимаю.


Ответы (1 шт):

Автор решения: MBo

Дело не совсем в сервисе.

На Python будет то же самое, если заводить новый список, а не менять элементы существующего

После nums = arr_l адрес списка изменится, а проверяющая система смотрит на старое место. Таким образом, мы нарушаем вторую часть предостережения: Do not return anything, modify nums in-place instead.

Если напечатать nums - мы изменения увидим, а проверялка - нет.

Проверенный на Leetcode вариант на Python:

class Solution:
    def rotate(self, nums: List[int], k: int) -> None:
        def reverse(l, r):
            while l < r:
                nums[l], nums[r] = nums[r], nums[l]
                l+=1
                r-=1
        le = len(nums)        
        k = k % le        
        reverse(0, le - k - 1)
        reverse(le - k, le - 1)
        reverse(0, le - 1)
→ Ссылка