From 6a0a9e2b9aae13951447e66756ca485e7f545dee Mon Sep 17 00:00:00 2001 From: Gleb Koval Date: Sun, 7 Nov 2021 20:06:26 +0000 Subject: [PATCH] rotate-array --- rotate-array/sol.go | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 rotate-array/sol.go diff --git a/rotate-array/sol.go b/rotate-array/sol.go new file mode 100644 index 0000000..d41dec7 --- /dev/null +++ b/rotate-array/sol.go @@ -0,0 +1,19 @@ +package main + +// Time: O(n) +// Space: O(1) (original array modified) +func rotate(nums []int, k int) { + c, a, l, idx, num := 0, 0, len(nums), 0, nums[0] + for c != l { + if idx == a && c != 0 { + a++ + idx = a + num = nums[idx] + } + new_idx := (idx + k) % l + old_num := nums[new_idx] + nums[new_idx] = num + idx, num = new_idx, old_num + c++ + } +}