Rotate Array

Rotate an array of n elements to the right by k steps. 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].

  • Time: O(n)
  • Space: O(1)
public void rotate(int[] nums, int k) {
    k = k % nums.length;
    reverse(nums, 0, nums.length - 1);
    reverse(nums, 0, k - 1);
    reverse(nums, k, nums.length - 1);
}

private void reverse(int[] nums, int l, int r) {
    while (l < r) {
        int temp = nums[r];
        nums[r] = nums[l];
        nums[l] = temp;
        l++;
        r--;
    }
}

results matching ""

    No results matching ""