Rotate Array
Rotate an array of n elements to the right by k
For example, with n = 7 and k = 3, the array [1,2,3,4,5,6,7]
is rotated to [5,6,7,1,2,3,4]
.
Note:
Try to come up as many solutions as you can, there are at least 3 different ways to solve this problem.
Related problem: Reverse Words in a String II
Credits:
Special thanks to @Freezen for adding this problem and creating all test cases.
class Solution {
public:
void rotate(int nums[], int n, int k) {
if(k==0)
return ;
k=k%n;
int i,temp[k];
for(i=0;i<k;i++)
temp[i]=nums[i+n-k];
for(i=n-1;i>=k;i--)
{
nums[i]=nums[(i-k)];
}
for(i=0;i<k;i++)
{
nums[i]=temp[i];
}
}
};