Use array reversal for array rotation .
Use two pointer for array reversal.
public class Solution {
public void Rotate(int[] nums, int k) {
k=k% nums.Length;
k=k% nums.Length;
reverse(nums, 0, nums.Length-1);
reverse(nums,0, k-1);
reverse(nums,k,nums.Length-1);
}
void reverse(int[] nums, int start , int end) { while(start<end) { int temp=nums[start]; nums[start]=nums[end]; nums[end]=temp; start++; end--; } }
}
Top comments (0)