Left rotate an array by D places in Python
In this post, we will discuss some methods to left rotate an array by D places in Python.
Left rotate an array by D places in Python
You are given an array and value of D (number of places by which the array is to left rotated).
Input: arr=[2,9,4,55,64,3,1] D=2 Output: [4,55,64,3,1,2,9]
Method-1:
In this method, we take a temporary array in which we take the D number of elements from arr
from starting and store it in this temporary array. Then we left shift the rest of the elements by D places in arr and then copy back the elements of temp
array to arr.
#Function to populate temp array def fillTemp(arr, D, n): temp=[] for i in range(D): temp.append(arr[i]) leftRot(arr,D,n,temp) #Function to rotate array by D places def leftRot(arr,D,n,temp): for i in range(n-D): arr[i]=arr[D+i] for j in range(D): arr[n-D+j]=temp[j] # Driver program arr = [2,9,4,55,64,3,1] size=len(arr) D=2 fillTemp(arr, D, size) #Printing Array for i in range(size): print ("{}".format(arr[i]),end=" ")
Output: 4,55,64,3,1,2,9
Time Complexity: O(n)
Space Complexity: O(D)
Method-2:
In this method, we left rotate array by rotating each element one by one. We repeat this process D times. We store the first element of arr
in a temp variable and then rotate each element by one place and then place this temp
variable value at the last index of arr
.
#Function to left rotate arr def leftRot(arr, D, size): for j in range(D): RotOneByOne(arr, size) #Function to left Rotate elements one by one def RotOneByOne(arr, size): temp = arr[0] for k in range(size-1): arr[k] = arr[k+1] arr[size-1] = temp # Driver program arr = [2,9,4,55,64,3,1] size=len(arr) D=2 leftRot(arr, D, size) #Printing Array for i in range(size): print ("{}".format(arr[i]))
Output: 4,55,64,3,1,2,9
Time Complexity: O(n*D)
Space Complexity: O(1)
Leave a Reply