less than 1 minute read

<-E 189> Rotate Array

// Method 1
class Solution {
public:
    
    void rotate(vector<int>& nums, int k) {
       k%=nums.size();
        reverse(nums.begin(),nums.end());
        reverse(nums.begin(),nums.begin()+k);
        reverse(nums.begin()+k,nums.end());
    }
};

// Method 2
class Solution {
public:
    
    void rotate(vector<int>& nums, int k) {
       k=k%nums.size();
        int p=0;
        for(int i=0;i<k&&p<nums.size();i++)
        {
            int f=0;
            int j=i;
            int temp=nums[i];
            do{
                j=(j+k)%nums.size();
                int x=nums[j];
                nums[j]=temp;
                temp=x;
                p++;
                
            }while(j!=i);
           // p++;
            
        }
    }
};