Jyotirmoy Barman

189. Rotate Array
MediumArrayMathTwo Pointers

Array Rotation by Repeated Right Shift (Brute Force Approach)

func rotate(nums []int, k int) { for i := 0; i < k; i++ { last := nums[len(nums)-1] for i := len(nums) - 1; i > 0; i-- { nums[i] = nums[i-1] } nums[0] = last } }
  • Time Complexity: O(n x k)
  • Space Complexity: O(1)

Array Rotation Using Reversal Algorithm (Optimal Approach)

func rotate(nums []int, k int) { n := len(nums) k %= n reverse(nums, 0, n - 1) reverse(nums, 0, k - 1) reverse(nums, k, n - 1) } func reverse(nums []int, start int, end int) { for start < end { nums[start], nums[end] = nums[end], nums[start] start++ end-- } }
  • Time Complexity: O(n)
  • Space Complexity: O(1)