https://leetcode.com/problems/rotate-array/
#include <vector>
#include <iostream>
class Solution {
public:
void rotate(std::vector<int>& nums, int k) {
k = k % nums.size();
// Reversing the whole array
reverseNumsArr(nums, 0, nums.size());
// Reversing first k elements
reverseNumsArr(nums, 0, k);
// Reversing remaining elements
reverseNumsArr(nums, k, nums.size());
}
private:
void reverseNumsArr(std::vector<int>& nums, int start, int end) {
end--; // Adjusting end to be the last index
while (start < end) {
std::swap(nums[start], nums[end]);
start++;
end--;
}
}
};

