Home  >  Article  >  Web Front-end  >  JavaScript program to find the subarray with the smallest mean

JavaScript program to find the subarray with the smallest mean

WBOY
WBOYforward
2023-08-23 23:33:131023browse

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

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!

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