#Juggling Algorithm for array rotation! #Time complexity: O(n) , Auxiliary-Space: O(1) def left_rotate_array(a, d) #Input array "a" and rotation by "d" elemets n=a.length if n>0 if d>n # if d>n ,we take modulo n d%=n end for i in 0...gcd(d,n) temp=a[i] j=i while(true) k=j+d if k>=n k=k-n end if k==i break end a[j]=a[k] j=k end a[j]=temp end end return a end def gcd(x,y) if y==0 return x else return gcd(y,x%y) end end