BBarCumulus
Ambiente di sviluppo con IA

Rettangolo massimo in un istogramma

Trova il rettangolo massimo sotto barre di larghezza unitaria con al massimo 256 altezze intere da zero a 1000000.

● ● ●BarCumulus●
Flussi di lavoro · Rettangolo massimo in un istogramma ×
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
✳Trova il rettangolo massimo sotto barre di larghezza unitaria con al massimo 256 altezze intere da zero a 1000000.
✓ ModificheControlla prima di applicare ↗
Illustrazione dell’ambiente
01

Progetto

Prova l’input vuoto e altezze uguali, rifiutando valori negativi o booleani senza cambiare l’input.

02

Controlla prima di applicare

Confronta il comportamento effettivo con il risultato atteso. Se una verifica fallisce, indaga la causa prima di altre modifiche.

03

Modelli

Configura un endpoint compatibile con OpenAI o Anthropic usando URL di base e chiave API, se necessaria. Prova la connessione. Il server locale deve essere in esecuzione; gli strumenti remoti possono trasmettere dati separatamente.

Flussi di lavoro

Rettangolo massimo in un istogramma

Flussi di lavoro ↗
Flussi di lavoro
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
Ambiente di sviluppo con IA

Chiedi che cosa deve preservare una rifattorizzazione prima di cambiarne la forma

BarCumulus è uno spazio di lavoro Windows con IA per rivedere una modifica all'implementazione senza perdere il comportamento che deve preservare. Apri la cartella del progetto e spiega perché vuoi rifattorizzare: uno stato più chiaro, una funzione di supporto più piccola o test più semplici. Chiedi al modello di esaminare il contratto esistente prima di proporre una sostituzione.

Puoi collegare un modello IA senza censura se offerto dal tuo endpoint supportato compatibile con OpenAI o Anthropic. Aggiungi credenziali quando necessario. Restrizioni del fornitore, capacità degli strumenti e limiti di contesto restano validi: usa la conversazione per sviluppare un ragionamento esaminabile, senza considerare un'implementazione diversa un miglioramento di per sé.

Un esempio da portare è il calcolo del rettangolo massimo sulle altezze delle barre. Richiedi una revisione di come il codice gestisce tratti di uguale altezza, input vuoto e lavoro finale ancora in sospeso. Includi piccoli casi con risultati verificati a mano, poi chiedi quali parti della rifattorizzazione proposta li preservino e quali li cambino.

Esamina il diff risultante ed esegui i controlli del progetto sulla stessa versione che intendi conservare. Per modifiche complesse, confrontala con un'implementazione semplice e indipendente su input piccoli. Il confronto costituisce evidenza entro l'intervallo testato; non trasforma lo spazio di lavoro in un sistema automatico di dimostrazione.

Rendere verificabile una rifattorizzazione

Qual è un motivo utile per richiedere una rifattorizzazione algoritmica?

Indica un problema di manutenzione valutabile, come transizioni di stato poco chiare o gestione duplicata. Richiedi la proposta minima che lo risolva. Una sostituzione deve giustificarsi con leggibilità e comportamento verificato, non soltanto con la novità.

Perché includere barre di uguale altezza nei casi di prova?

Valori uguali possono rivelare ipotesi su quando lo stato in sospeso viene mantenuto o rimosso. Includi un breve tratto uniforme con risultato atteso noto. Chiedi al modello di spiegarlo rispetto all'implementazione proposta prima di rivedere esempi più grandi.

I test differenziali dimostrano l'equivalenza di due implementazioni?

Sostengono l'equivalenza per gli input testati e possono rivelare discrepanze. Mantieni visibili intervallo degli input e implementazione di riferimento, e indaga le differenze. Non descrivere test finiti come dimostrazione per ogni input possibile accettato dalla funzione in produzione.

Come devo rivedere uno script di confronto proposto?

Leggi limiti degli input e piano di esecuzione prima di avviarlo. Conferma anche le destinazioni degli strumenti: l'inferenza locale richiede un server separato e non rende locale ogni strumento di esecuzione collegato. Mantieni deliberatamente piccoli i carichi di prova.

Scarica per Windows ↗

BarCumulus · Aggiornato 2026-10-25