Schiebefenster in Python

Vaibhhav Khetarpal 14 April 2022
Schiebefenster in Python

An jedem gegebenen Punkt wird jedes Fenster, von dem gesagt werden kann, dass es eine Teilmenge einer bestimmten bestimmten Datenstruktur ist, als Gleitfenster bezeichnet. Die Fenstergröße entscheidet über die Anzahl der Elemente, die diese Teilmenge enthalten würde.

Dieses Tutorial behandelt das gleitende Fenster und zeigt, wie es in Python implementiert wird.

Der Hauptgrund für die Verwendung eines gleitenden Fensters besteht darin, dass es die Zeitkomplexität reduziert. Es ist darauf spezialisiert, die mit der Brute-Force-Methode gelösten Probleme noch schneller zu lösen.

Ein gleitendes Fenster kann bei einfachen Codierungsaufgaben und bei umfangreichen und fortgeschrittenen Aufgaben wie digitaler Bildverarbeitung und Objekterkennung nützlich sein. Dieser Artikel konzentriert sich jedoch auf einen einfachen Bereich, der Ihnen hilft, das gleitende Fenster und seine Verwendung zu verstehen.

Um dies besser zu erklären, nehmen wir ein Beispiel für ein Problem und implementieren dann ein gleitendes Fenster darauf. Für diesen Artikel nehmen wir folgendes Problem:

Gegeben sei ein Array von Zahlen der Größe x. Finden Sie ein Subarray der Fenstergröße k mit maximaler Summe.

Eingabe: x = [12,11,10,23,55,45,15,28], k=3.

Jetzt wenden wir ein gleitendes Fenster an, um dieses Problem zu lösen.

n = int(input("enter size of array "))
print("enter arrays elements")
a = list(map(int, input().split()))
k = int(input("enter the size of subarray "))
ms = -(10 ** 6)
ws = sum(a[:k])
for i in range(n - k):
    ms = max(ms, ws)
    ws = ws - a[i] + a[i + k]
ms = max(ms, ws)
print("subarray of size {} with maximum sum as {}".format(k, ms))

Der obige Code liefert die folgende Ausgabe:

enter size of array 8
enter arrays elements
12 11 10 23 55 45 15 28
enter the size of subarray 3
subarray of size 3 with maximum sum as 123
Vaibhhav Khetarpal avatar Vaibhhav Khetarpal avatar

Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.

LinkedIn

Verwandter Artikel - Python Array