Advertisement
imashutosh51

Rotate Array

Oct 6th, 2022 (edited)
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.74 KB | None | 0 0
  1. /*
  2. Logic:
  3.   reverse the last k elements
  4.   reverse the remaining elements
  5.   revese the whole array now
  6. */
  7.  
  8. class Solution {
  9. public:
  10.     void rotate(vector<int>& nums, int k) {
  11.         int n=nums.size();
  12.         k%=n;
  13.         if(n==1) return;
  14.         reverse(nums.begin(),nums.begin()+n-k);
  15.         reverse(nums.begin()+n-k,nums.end());
  16.         reverse(nums.begin(),nums.end());
  17.     }
  18. };
  19.  
  20. #Python
  21. def rev(arr,a,b):
  22.     while a<b:
  23.         arr[a],arr[b]=arr[b],arr[a]
  24.         a+=1
  25.         b-=1
  26. class Solution:
  27.     def rotate(self, nums: List[int], k: int) -> None:
  28.         n=len(nums)
  29.         k=k%n #if k>size of array
  30.         rev(nums,0,n-k-1)
  31.         rev(nums,n-k,n-1)
  32.         rev(nums,0,n-1)
  33.         return rev
  34.  
  35.  
  36.        
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement