Home  >  Article  >  Web Front-end  >  JavaScript program finds M-th element after right-rotating array K times

JavaScript program finds M-th element after right-rotating array K times

WBOY
WBOYforward
2023-09-05 11:05:07911browse

JavaScript 程序在数组右旋转 K 次后查找第 M 个元素

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.

method

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.

Example

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));

illustrate

  • findElement The function accepts the array arr, the number of rotations k, and the m-th element to be found. p>

  • The
  • 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!

Statement:
This article is reproduced at:tutorialspoint.com. If there is any infringement, please contact admin@php.cn delete