189. Rotate Array 🔄
Difficulty: Medium - Tags: Array, Two Pointers, Mathematics
Description 📋
Given an integer array nums, rotate the array to the right by k steps, where k is non-negative.
Examples 🌟
Example 1:
Input:
nums = [1,2,3,4,5,6,7]
k = 3Output:
[5,6,7,1,2,3,4]Explanation:
Rotate 1 step 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:
Output:
Explanation:
Rotate 1 step to the right:
[99,-1,-100,3]Rotate 2 steps to the right:
[3,99,-1,-100]
Constraints ⚙️
1 <= nums.length <= 10^5-2^31 <= nums[i] <= 2^31 - 10 <= k <= 10^5
Solution 💡
The time complexity is $O(n)$, and the space complexity is $O(1)$ (in-place rotation). The approach uses three array reversals:
Reverse the entire array.
Reverse the first
kelements.Reverse the remaining
n - kelements.
Java
You can find the full Solution1.java file here and Solution2.java file here. Bad solution need to avoid here
Last updated
Was this helpful?