InterviewHubPRO
Section Overview
Q15

Question 15 of 100

Part 2: Arrays, Strings & Hash Maps (6 - 18)

15%
DSA Patterns (Multi-Lang)•Part 2: Arrays, Strings & Hash Maps (6 - 18)

Rotate Array.

In Simple Words: In-place 3-step reversal trick:

  1. Reverse the entire array.
  2. Reverse the first $k$ elements.
  3. Reverse the remaining $N - k$ elements.
  • Time: $O(N)$ | Space: $O(1)$
Multi-Language Solutions
Switch tabs or choose All
def rotate(nums: list[int], k: int) -> None:
    k = k % len(nums)
    def reverse(l, r):
        while l < r:
            nums[l], nums[r] = nums[r], nums[l]
            l += 1; r -= 1
    
    reverse(0, len(nums) - 1)
    reverse(0, k - 1)
    reverse(k, len(nums) - 1)