# 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