@AlgoPrep - 1 - Array - Rotate n times

karan arorakaran arora
1 min read
  • rotate by one n times

  • advance swapping

  • reverse in 3 parts

class Solution {
public:
    void rotate(vector<int>& nums, int k) {

        for(int n=0;n<k;n++){
            int endPointer = nums.size()-1;
            for(int i=0;i<nums.size();i++){
                int temp = nums[i];
                nums[i] = nums[endPointer];
                nums[endPointer] = temp;
            }  
            for (int i:nums) cout << i;
        }      
    }
};
class Solution {
public:
    void rotate(vector<int>& nums, int k) {
        int n =nums.size();
        vector<int> temp(n);
        for(int i=0;i<n;i++){
            temp[(i+k)%n] = nums[i];
        }
        nums = temp;
    }
};
class Solution {
public:
    void rotate(vector<int>& nums, int k) {        
        k=k%nums.size();
        reverse(nums.begin(),nums.end());        
        reverse(nums.begin(),nums.begin()+(nums.size()-k));
        reverse(nums.begin()+(nums.size()-k),nums.end());
    }
};
0
Subscribe to my newsletter

Read articles from karan arora directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

karan arora
karan arora