Heim  >  Artikel  >  Web-Frontend  >  JavaScript-Programm zum Finden des Subarrays mit dem kleinsten Mittelwert

JavaScript-Programm zum Finden des Subarrays mit dem kleinsten Mittelwert

WBOY
WBOYnach vorne
2023-08-23 23:33:131023Durchsuche

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

Wir werden ein Programm schreiben, um das Subarray mit dem kleinsten Mittelwert zu finden. Dazu durchlaufen wir das Array und verfolgen das aktuelle Subarray und seine Summe. Für jedes Element berechnen wir den Durchschnitt des aktuellen Subarrays und vergleichen ihn mit dem kleinsten Durchschnitt, den wir bisher gesehen haben. Wenn er niedriger ist, aktualisieren wir den minimalen Durchschnitt des Subarrays sowie die Start- und Endindizes. Am Ende der Iteration geben wir das Subarray mit dem kleinsten Mittelwert zurück.

Methode

Um das Subarray mit dem kleinsten Mittelwert zu finden, können wir diese Schritte befolgen -

  • Initialisiert zwei Variablen, start und end, um den Start- und Endindex des Subarrays zu verfolgen.

  • Verwenden Sie for , um das Array zu durchlaufen und dabei die aktuelle Summe und den kleinsten bisher gefundenen Durchschnitt zu verfolgen.

  • Vergleichen Sie in jeder Iteration die aktuelle Summe mit dem Mindestdurchschnitt, und wenn ein neues Minimum gefunden wird, aktualisieren Sie die Variablen Start und End.

  • Wenn die aktuelle Summe größer als der Mindestdurchschnitt ist, verschieben Sie den Startindex nach vorne, bis die Summe kleiner als der Mindestdurchschnitt ist.

  • Wiederholen Sie die Schritte 2–4, bis Sie das Ende des Arrays erreicht haben.

  • Das Subarray mit dem kleinsten Durchschnitt ist das Subarray, das bei Start beginnt und bei Ende endet.

Beispiel

Suchen Sie bei einem gegebenen Array von ganzen Zahlen das Subarray mit dem kleinsten Mittelwert.

Hier ist ein vollständig funktionierendes JavaScript-Beispiel zur Lösung dieses Problems -

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

Anleitung

Die
  • -Funktion

    findSmallestAverageSubarray nimmt als Eingabe ein Array von Ganzzahlen arr und eine Ganzzahl k an, wobei k das Unterarray ist.

    Die Funktion
  • gibt das Subarray mit dem kleinsten Mittelwert zurück.

  • minAvgDie Variable wird mit dem größtmöglichen Wert einer Gleitkommazahl initialisiert.

    Die Variable
  • minAvgStart wird verwendet, um den Startindex des Subarrays mit dem kleinsten Durchschnitt zu speichern.

    Die Variable
  • windowSum wird verwendet, um die Summe der Elemente im aktuellen Subarray zu speichern.

  • Äußere Schleife

    for (let i = 0; i für iterierende Länge k im gegebenen Array arr.

  • Die innere Schleife

    for (let j = 0; j wird verwendet, um die Summe der Elemente im aktuellen Subarray zu berechnen.

    Der
  • if (i === 0)-Block wird verwendet, um die Summe der Elemente im ersten Unterarray zu berechnen.

    Der
  • else-Block wird verwendet, um die Summe der Elemente in den verbleibenden Subarrays zu berechnen. Es subtrahiert das erste Element des vorherigen Subarrays und fügt das letzte Element des aktuellen Subarrays hinzu.

    Die Variable
  • windowAvg wird zum Speichern des Durchschnittswerts des aktuellen Unterarrays verwendet.

    Der Block
  • if (windowAvg wird verwendet, um den Mindestdurchschnitt und den Startindex des Unterarrays mit dem Mindestdurchschnitt zu aktualisieren.

  • Abschließend gibt die Funktion das Subarray mit dem kleinsten Durchschnitt zurück.

Das obige ist der detaillierte Inhalt vonJavaScript-Programm zum Finden des Subarrays mit dem kleinsten Mittelwert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen