class Solution {
public:

    void reverse(vector<int>& arr , int start , int end ){
        while (start < end){
            swap(arr[start++] , arr[end--]);
        }
    }

    void rotate(vector<int>& arr, int k) {
        int n = arr.size() ;

        k = k% n;
        reverse(arr , 0 , n-1);
        reverse(arr , 0 , k-1);
        reverse(arr , k , n-1);
    }
};

https://takeuforward.org/data-structure/rotate-array-by-k-elements/

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