Home > Article > Web Front-end > JavaScript program finds M-th element after right-rotating array K times
We are writing a JavaScript program to find the mth element of an array right-rotated k times. First, we will take the input of the arrays m and k. We will then use a loop to perform the correct rotation. On each iteration of the loop, we move the last element of the array to the first position. We will continue this loop k times to get the rotated array. Finally, we will return the mth element of the rotated array as the result.
The method of finding the m-th element after right-rotating the array k times can be decomposed as follows -
Calculate the actual position of the m-th element after k rotations, that is, (m-k) % n, where n is the length of the array.
Check if the calculated position is negative, in which case it can be converted to a positive position by adding n.
Returns the element at the calculated position in the array.
To optimize this solution, you can use the modulo operator to keep the calculated position within the range of the array, so that you don't need to check for negative values.
The time complexity of this solution is O(1) because calculating the final position and retrieving the element at that position are constant time operations.
The space complexity is O(1) because no additional data structures are used in the solution.
This is an example of a JavaScript program that finds the mth element after right-rotating an array k times.
function findElement(arr, k, m) { k = k % arr.length; // handling large k values return arr[(arr.length - k + m - 1) % arr.length]; } let arr = [1, 2, 3, 4, 5]; let k = 2; let m = 3; console.log(findElement(arr, k, m));
findElement The function accepts the array arr, the number of rotations k, and the m-th element to be found. p>
k = k % arr.length row calculates the actual number of rotations performed on the array after processing large k values. This is done because rotating the array beyond its length does not change its position, so taking k modulo the length of the array gives the actual number of rotations performed.
Line return arr[(arr.length - k m - 1) % arr.length];Calculate the position of the m-th element after k rotations. The expression arr.length - k gives the starting position of the array after k rotations, then m - 1 gives the position of the m-th element, and finally takes the AND Modulo the array length ensures that the position wraps around the end of the array if it goes out of range.
Finally, the program calls the findElement function and records the result. In this example, the output will be 4.
The above is the detailed content of JavaScript program finds M-th element after right-rotating array K times. For more information, please follow other related articles on the PHP Chinese website!