LeetCode - проблема с проверкой результата
Я тут, в общем, решил качать мозги и порешать задачки на LeetCode. Проблема в том, что у меня есть вопросы к самому сервису, а не задачам. Допустим, вот есть задача про Rotate Array, мое решение выглядит как-то так (пусть оно даже неверное):
Проблема в том, что сама система не ждет возрата результата и как бы я не пытался - всегда выдает мне результат, что изначально сама и заложила в числах. В чем прикол? Что я должен сделать, ведь я решил, а программа не хочет видеть мое решение. Когда-то уже сталкивался с такой же проблемой на Яндекс Практикум. Ничего не понимаю.
Ответы (1 шт):
Дело не совсем в сервисе.
На 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)
