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:
Output:
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 - 1
0 <= 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
k
elements.Reverse the remaining
n - k
elements.
Java
You can find the full Solution1.java
file here and Solution2.java
file here. Bad solution need to avoid here
Last updated