Rotate Array

LeetCode 189 · View on LeetCode

Rotate an array to the right by k steps. The three-reverse trick does it in O(1) extra space: reverse the whole array, reverse the first k, then reverse the rest.

def rotate(nums: list[int], k: int) -> None:
    k %= len(nums)
    nums.reverse()
    nums[:k] = nums[:k][::-1]
    nums[k:] = nums[k:][::-1]

if __name__ == '__main__':
    a = [1, 2, 3, 4, 5, 6, 7]
    rotate(a, 3)
    print(a)  # [5, 6, 7, 1, 2, 3, 4]

    b = [-1, -100, 3, 99]
    rotate(b, 2)
    print(b)  # [3, 99, -1, -100]
© 2026 ByteLearn.dev. Free courses for developers. · Privacy