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.
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.
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));
findSmallestAverageSubarray nimmt als Eingabe ein Array von Ganzzahlen arr und eine Ganzzahl k an, wobei k das Unterarray ist.
Die FunktionminAvgDie Variable wird mit dem größtmöglichen Wert einer Gleitkommazahl initialisiert.
Die VariableminAvgStart wird verwendet, um den Startindex des Subarrays mit dem kleinsten Durchschnitt zu speichern.
Die VariablewindowSum wird verwendet, um die Summe der Elemente im aktuellen Subarray zu speichern.
for (let i = 0; i für iterierende Länge k im gegebenen Array arr.
for (let j = 0; j wird verwendet, um die Summe der Elemente im aktuellen Subarray zu berechnen.
Derif (i === 0)-Block wird verwendet, um die Summe der Elemente im ersten Unterarray zu berechnen.
Derelse-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 VariablewindowAvg wird zum Speichern des Durchschnittswerts des aktuellen Unterarrays verwendet.
Der Blockif (windowAvg wird verwendet, um den Mindestdurchschnitt und den Startindex des Unterarrays mit dem Mindestdurchschnitt zu aktualisieren.
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!