DEV Community

Abhishek Chaudhary
Abhishek Chaudhary

Posted on

2 1

Rotate Array

Given an array, rotate the array to the right by k steps, where k is non-negative.

Example 1:

Input: nums = [1,2,3,4,5,6,7], k = 3
Output: [5,6,7,1,2,3,4]
Explanation:
rotate 1 steps to the right: [7,1,2,3,4,5,6]
rotate 2 steps to the right: [6,7,1,2,3,4,5]
rotate 3 steps to the right: [5,6,7,1,2,3,4]

Example 2:

Input: nums = [-1,-100,3,99], k = 2
Output: [3,99,-1,-100]
Explanation:
rotate 1 steps to the right: [99,-1,-100,3]
rotate 2 steps to the right: [3,99,-1,-100]

Constraints:

  • 1 <= nums.length <= 105
  • -231 <= nums[i] <= 231 - 1
  • 0 <= k <= 105

Follow up:

  • Try to come up with as many solutions as you can. There are at least three different ways to solve this problem.
  • Could you do it in-place with O(1) extra space?

SOLUTION:

class Solution:
    def reverse(self, nums, a, b):
        n = b - a
        for i in range(n // 2):
            nums[a + i], nums[a + n - i - 1] = nums[a + n - i - 1], nums[a + i]
        return nums

    def rotate(self, nums: List[int], k: int) -> None:
        n = len(nums)
        k = n - k % n
        self.reverse(nums, 0, k)
        self.reverse(nums, k, n)
        self.reverse(nums, 0, n)
        return nums
Enter fullscreen mode Exit fullscreen mode

PulumiUP 2025 image

From Infra to Platforms: PulumiUP 2025 Panel

Don’t miss the expert panel at PulumiUP 2025 on May 6. Learn how teams are evolving from infrastructure engineering to platform engineering—faster, more secure, and at scale.

Save Your Spot

Top comments (0)

👋 Kindness is contagious

If this post resonated with you, feel free to hit ❤️ or leave a quick comment to share your thoughts!

Okay