working link https://stackblitz.com/edit/js-wnzbgw
rotate a array (right direction) k times
//Right Rotation of a Array -----------------------using O(n) space and O(n) time complexity
var myArray=[1,2,3,4,5,6,7];
function RotationRightFirstMethod(no_of_times)
{
var newArray=[];
var t=myArray.length;
for(var i=0;i<t;i++)
{
newArray[(i+no_of_times)%t]=myArray[i];
}
return newArray;
}
console.log("result 1",RotationRightFirstMethod(4));
//lets try using some my own method ----------
var myArray2=[1,2,3,4,5,6,7];
function RotationRightSecondMethod(n)
{
var firstArray=[];
var secondArray=[];
for(var i=0;i<myArray2.length-n;i++)
{
firstArray.push(myArray2[i])
}
for(var i=myArray2.length-n;i<myArray2.length;i++)
{
secondArray.push(myArray2[i]);
}
return secondArray.concat(firstArray);
}
console.log("result 2",RotationRightSecondMethod(4));
//now try thrid method which you can find on all sites
//inplace but time complexity is O(n*n)
var myArray3=[1,2,3,4,5,6,7];
function swap()
{
//get last element
let last=myArray3[myArray3.length-1];
//now make a loop from second last element to the index 0
//fill every index+1 value with index value like this
for(var i=myArray3.length-2;i>=0;i--)
{
myArray3[i+1]=myArray3[i];
}
myArray3[0]=last;
}
function rotateArray(n)
{
for(var i=0;i<n;i++)
{
swap();
}
}
rotateArray(4);
console.log("result 3",myArray3);
Comments
Post a Comment