BBarCumulus
KI-Arbeitsumgebung für Code

Größtes Rechteck im Histogramm

Bestimme das größte Rechteck unter Balken der Breite eins mit höchstens 256 ganzzahligen Höhen von null bis 1000000.

● ● ●BarCumulus●
Arbeitsabläufe · Größtes Rechteck im Histogramm ×
def histogram_area(heights):
    heights = tuple(heights)
    if len(heights) > 256 or any(type(h) is not int or not 0 <= h <= 1000000 for h in heights):
        raise ValueError("height.range")
    stack, best = [], 0
    for i in range(len(heights) + 1):
        current = heights[i] if i < len(heights) else 0
        while stack and heights[stack[-1]] > current:
            height = heights[stack.pop()]
            start = stack[-1] + 1 if stack else 0
            best = max(best, height * (i - start))
        stack.append(i)
    return best
✳Bestimme das größte Rechteck unter Balken der Breite eins mit höchstens 256 ganzzahligen Höhen von null bis 1000000.
✓ ÄnderungenVor dem Anwenden prüfen ↗
Illustration der Arbeitsumgebung
01

Projekt

Prüfe leere Eingaben und gleiche Höhen, und lehne negative oder boolesche Werte ab, ohne die Eingabe zu ändern.

02

Vor dem Anwenden prüfen

Vergleichen Sie das tatsächliche Verhalten mit dem erwarteten Ergebnis. Klären Sie fehlgeschlagene Prüfungen vor weiteren Änderungen.

03

Modelle

Richten Sie einen OpenAI-kompatiblen oder Anthropic-Endpunkt mit Basis-URL und gegebenenfalls API-Schlüssel ein. Testen Sie die Verbindung. Ein lokaler Modellserver muss laufen; entfernte Werkzeuge können Daten separat übertragen.

Arbeitsabläufe

Größtes Rechteck im Histogramm

Arbeitsabläufe ↗
Arbeitsabläufe
def histogram_area(heights):
    heights = tuple(heights)
    if len(heights) > 256 or any(type(h) is not int or not 0 <= h <= 1000000 for h in heights):
        raise ValueError("height.range")
    stack, best = [], 0
    for i in range(len(heights) + 1):
        current = heights[i] if i < len(heights) else 0
        while stack and heights[stack[-1]] > current:
            height = heights[stack.pop()]
            start = stack[-1] + 1 if stack else 0
            best = max(best, height * (i - start))
        stack.append(i)
    return best
KI-Arbeitsumgebung für Code

Vor dem Umbau fragen, was ein Refactoring bewahren muss

BarCumulus ist ein KI-Programmierarbeitsbereich für Windows, um Implementierungsänderungen zu prüfen, ohne das zu bewahrende Verhalten zu verlieren. Öffnen Sie den Projektordner und erläutern Sie den Grund für das Refactoring: klarerer Zustand, kleinere Hilfsfunktion oder einfachere Testbarkeit. Lassen Sie das Modell den bestehenden Vertrag untersuchen, bevor es Ersatz vorschlägt.

Sie können ein unzensiertes KI-Modell verbinden, wenn Ihr unterstützter OpenAI-kompatibler oder Anthropic-Endpunkt es anbietet. Ergänzen Sie bei Bedarf Zugangsdaten. Anbieterbeschränkungen, Werkzeugfähigkeiten und Kontextgrenzen bleiben bestehen. Nutzen Sie das Gespräch daher für überprüfbare Begründungen, statt eine anders aussehende Implementierung allein deshalb als Verbesserung anzusehen.

Ein Beispiel ist die Berechnung des größten Rechtecks über Balkenhöhen. Fordern Sie eine Prüfung des Umgangs mit Plateaus, leeren Eingaben und abschließend noch ausstehenden Arbeitsschritten an. Liefern Sie kleine Testfälle mit von Hand geprüften Ergebnissen und fragen Sie, welche Teile des Refactoring-Vorschlags diese Fälle bewahren und welche sie verändern.

Prüfen Sie den resultierenden Diff und führen Sie die Projektprüfungen auf genau der Version aus, die Sie behalten wollen. Vergleichen Sie komplizierte Änderungen für kleine Eingaben mit einer unabhängigen einfachen Implementierung. Dieser Vergleich liefert Belege innerhalb seines getesteten Bereichs; er macht den Programmierarbeitsbereich nicht zu einem automatischen Beweissystem.

Ein Refactoring überprüfbar halten

Was ist ein sinnvoller Grund für ein Algorithmus-Refactoring?

Benennen Sie ein beurteilbares Wartungsproblem, etwa unklare Zustandsübergänge oder doppelte Behandlung. Fordern Sie den kleinsten Vorschlag an, der es behebt. Ein Ersatz sollte sich durch Lesbarkeit und geprüftes Verhalten rechtfertigen, nicht allein durch Neuartigkeit.

Warum Balken gleicher Höhe in Testfälle aufnehmen?

Gleiche Werte können Annahmen darüber sichtbar machen, wann ausstehender Zustand beibehalten oder entfernt wird. Nehmen Sie ein kurzes Plateau mit bekanntem Ergebnis auf. Lassen Sie das Modell diesen Testfall anhand der vorgeschlagenen Implementierung erklären, bevor Sie größere Beispiele prüfen.

Beweisen Differenztests die Gleichwertigkeit zweier Implementierungen?

Sie stützen die Gleichwertigkeit für getestete Eingaben und können Abweichungen aufdecken. Halten Sie Eingabebereich und Referenzimplementierung sichtbar und untersuchen Sie Unterschiede. Beschreiben Sie endliche Tests nicht als Beweis für jede mögliche Eingabe der Produktionsfunktion.

Wie sollte ich ein vorgeschlagenes Vergleichsskript prüfen?

Lesen Sie Eingabegrenzen und Ausführungsplan vor dem Start. Prüfen Sie auch Werkzeugziele: Lokale Modellinferenz benötigt einen separaten Server und macht nicht jedes angeschlossene Ausführungswerkzeug lokal. Halten Sie Testlasten bewusst klein.

Für Windows herunterladen ↗

BarCumulus · Aktualisiert 2026-10-25