BBarCumulus
AI-werkruimte voor code

Grootste rechthoek in een histogram

Zoek de grootste rechthoek onder balken met breedte één en maximaal 256 gehele hoogten van nul tot en met 1000000.

● ● ●BarCumulus●
Werkprocessen · Grootste rechthoek in een histogram ×
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
✳Zoek de grootste rechthoek onder balken met breedte één en maximaal 256 gehele hoogten van nul tot en met 1000000.
✓ WijzigingenControleer vóór het toepassen ↗
Illustratie van de werkruimte
01

Project

Test lege invoer en gelijke hoogten, en weiger negatieve of booleaanse waarden zonder de invoer te wijzigen.

02

Controleer vóór het toepassen

Vergelijk het werkelijke gedrag met het verwachte resultaat. Onderzoek een mislukte controle voordat je verdergaat met wijzigingen.

03

Modellen

Stel een OpenAI-compatibel of Anthropic-endpoint in met de basis-URL en zo nodig een API-sleutel. Test de verbinding. Een lokale modelserver moet actief zijn; externe hulpmiddelen kunnen apart gegevens versturen.

Werkprocessen

Grootste rechthoek in een histogram

Werkprocessen ↗
Werkprocessen
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
AI-werkruimte voor code

Vraag wat een herstructurering moet behouden voordat u de vorm verandert

BarCumulus is een Windows-programmeerwerkruimte met AI om een implementatiewijziging te beoordelen zonder het te behouden gedrag uit het oog te verliezen. Open de projectmap en leg uit waarom u wilt herstructureren: duidelijkere toestand, een kleinere hulpfunctie of een eenvoudiger testaanpak. Laat het model het bestaande contract inspecteren voordat het een vervanging voorstelt.

U kunt een AI-model zonder censuur verbinden als uw ondersteunde OpenAI-compatibele of Anthropic-eindpunt dat aanbiedt. Voeg waar nodig inloggegevens toe. Beperkingen van de aanbieder, mogelijkheden van hulpmiddelen en contextlimieten blijven gelden. Gebruik het gesprek daarom om controleerbare redeneringen te ontwikkelen in plaats van een anders ogende implementatie op zichzelf als verbetering te zien.

Een berekening van de grootste rechthoek op basis van staafhoogten is één mogelijk voorbeeld. Vraag om een beoordeling van de afhandeling van plateaus, lege invoer en het laatste nog te verwerken werk. Geef kleine testgevallen met handmatig gecontroleerde resultaten. Vraag het model vervolgens welke onderdelen van een voorgestelde herstructurering die gevallen behouden en welke ze veranderen.

Inspecteer de resulterende codeverschillen en voer de projectcontroles uit op dezelfde versie die u wilt behouden. Vergelijk ingewikkelde wijzigingen met een onafhankelijke eenvoudige implementatie voor kleine invoer. Die vergelijking levert bewijs binnen het geteste bereik; zij maakt de programmeerwerkruimte niet tot een automatisch bewijssysteem.

Een herstructurering controleerbaar houden

Wat is een goede reden om een algoritme te laten herstructureren?

Benoem een onderhoudsprobleem dat u kunt beoordelen, zoals onduidelijke toestandsovergangen of dubbele afhandeling. Vraag om het kleinste voorstel dat dit oplost. Een vervanging moet haar plaats verdienen door leesbaarheid en geverifieerd gedrag, niet alleen door nieuwigheid.

Waarom staven van gelijke hoogte in de testgevallen opnemen?

Gelijke waarden kunnen aannames blootleggen over wanneer een nog te verwerken toestand wordt behouden of verwijderd. Neem een kort plateau met een bekend verwacht resultaat op. Laat het model dat testgeval aan de hand van de voorgestelde implementatie uitleggen voordat u grotere voorbeelden beoordeelt.

Bewijst differentieel testen dat twee implementaties gelijkwaardig zijn?

Het ondersteunt gelijkwaardigheid voor de geteste invoer en kan verschillen blootleggen. Houd het invoerbereik en de referentie-implementatie zichtbaar en onderzoek verschillen. Beschrijf eindige tests niet als bewijs voor elke mogelijke invoer die de productiefunctie accepteert.

Hoe beoordeel ik een voorgesteld vergelijkingsscript?

Lees de invoergrenzen en het uitvoeringsplan voordat u het uitvoert. Controleer ook de bestemmingen van hulpmiddelen: lokale modelinferentie vereist een afzonderlijke server en maakt niet elk verbonden uitvoeringshulpmiddel lokaal. Houd testwerklasten bewust klein.

Download voor Windows ↗

BarCumulus · Bijgewerkt 2026-10-25