Leetcode 189 Solution

This article provides solution to leetcode question 189 (rotate-array)

https://leetcode.com/problems/rotate-array

Solution

class Solution { public: int gcd(int a, int b) { if (b == 0) return a; else return gcd(b, a % b); }
void rotate(vector<int>& nums, int k) { int n = nums.size(); int m = gcd(n, k);
for (int i = 0; i < m; i++) { int j = i;
int curr = nums[j];
do { int tmp = nums[(j + k) % n]; nums[(j + k) % n] = curr;
j = (j + k) % n; curr = tmp; } while (j != i); } } };