Home > Web Front-end > JS Tutorial > body text

JavaScript program to find the subarray with the smallest mean

WBOY
Release: 2023-08-23 23:33:13
forward
1048 people have browsed it

JavaScript 程序查找平均值最小的子数组

We will write a program to find the subarray with the smallest mean. To do this, we will iterate over the array and keep track of the current subarray and its sum. For each element, we'll calculate the average of the current subarray and compare it to the smallest average we've seen so far. If it's lower, we update the subarray's minimum average as well as the start and end indices. At the end of the iteration, we return the subarray with the smallest mean.

method

To find the subarray with the smallest mean, we can follow these steps -

  • Initialize two variables, start and end, to keep track of the start and end indices of the subarray.

  • Use for to loop through the array, keeping track of the current sum and the smallest average found so far.

  • On each iteration, the current sum is compared to the minimum average, and if a new minimum is found, the Start and End variables are updated.

  • If the current sum is greater than the minimum average, move the starting index forward until the sum is less than the minimum average.

  • Repeat steps 2-4 until you reach the end of the array.

  • The subarray with the smallest average is the subarray starting from start and ending at end.

Example

Given an array of integers, find the subarray with the smallest mean.

Here is a complete working JavaScript example to solve this problem -

function findsmallestAverageSubarray(arr, k) {
   let minAvg = Number.POSITIVE_INFINITY;
   let minAvgStart = 0;
   let windowSum = 0;
   for (let i = 0; i < arr.length - k + 1; i++) {
      if (i === 0) {
         for (let j = 0; j < k; j++) {
            windowSum += arr[j];
         }
      } else {
         windowSum -= arr[i - 1];
         windowSum += arr[i + k - 1];
      }
      let windowAvg = windowSum / k;
      if (windowAvg < minAvg) {
         minAvg = windowAvg;
         minAvgStart = i;
      }
   }
   return arr.slice(minAvgStart, minAvgStart + k);
}

const arr = [1, 3, 6, -3, -4, 2, 5];
const k = 4;

console.log(findsmallestAverageSubarray(arr, k));
Copy after login

illustrate

  • Function findSmallestAverageSubarray takes as input an array of integers arr and an integer k, where k is the subarray.

  • The function returns the subarray with the smallest average.

  • minAvgVariables are initialized with the largest possible value of a floating point number.

  • minAvgStartThe variable is used to store the starting index of the subarray with the smallest average value.

  • windowSumVariable is used to store the sum of elements in the current subarray.

  • Outer loopfor (let i = 0; i For iteration length k in the given array arr in.

  • Inner loopfor (let j = 0; j Used to calculate the sum of elements in the current subarray.

  • if (i === 0) block is used to calculate the sum of the elements in the first subarray.

  • The
  • else block is used to calculate the sum of elements in the remaining subarrays. It subtracts the first element of the previous subarray and adds the last element of the current subarray.

  • windowAvgVariable is used to store the average value of the current subarray.

  • if (windowAvg block is used to update the minimum average and the starting index of the subarray with the minimum average.

  • Finally, the function returns the subarray with the smallest average.

The above is the detailed content of JavaScript program to find the subarray with the smallest mean. For more information, please follow other related articles on the PHP Chinese website!

source:tutorialspoint.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template