Given array
const arr=[1,2,3,4,5,6]
Left Rotate array by 2 elements , Output will be ---
arr = [3,4,5,6,1,2]
This problem can be solve with reverse array approach easily
- First devide the array with given K elements to rotate
- In our case K is 2
- Reverse the corresponding devision of elements
- So after reversing the array will be
- Now reverse the whole array that will give you the output
- After reversing whole array the output will be
Implementation in Code level
let arr=[1,2,3,4,5,6]
let k=2
function reverseArray(arr,start,end){
while(start<end){
[arr[start],arr[end]]=[arr[end],arr[start]];
start++;
end--;
}
return arr;
}
//this will be the first step to reverse the first half
let reversedFirstHalf=reverseArray(arr,0,k-1)
//this will be the second step to reverse the second half
let reversedSecondHalf=reverseArray(reversedFirstHalf,k,arr.length-1)
//After reversing the whole array
let rotateArrayOutput = reverseArray(reversedSecondHalf,0,arr.length-1)
Top comments (0)