BBarCumulus
Spațiu de programare cu AI

Dreptunghiul maxim din histogramă

Găsește dreptunghiul maxim sub bare cu lățimea unu și cel mult 256 de înălțimi întregi între zero și 1000000.

● ● ●BarCumulus●
Fluxuri de lucru · Dreptunghiul maxim din 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
✳Găsește dreptunghiul maxim sub bare cu lățimea unu și cel mult 256 de înălțimi întregi între zero și 1000000.
✓ ModificăriVerifică înainte de aplicare ↗
Ilustrarea spațiului de lucru
01

Proiect

Verifică intrarea goală și înălțimile egale, respingând valorile negative sau booleene fără modificarea datelor.

02

Verifică înainte de aplicare

Compară comportamentul real cu rezultatul așteptat. Dacă o verificare eșuează, cercetează cauza înainte de alte modificări.

03

Modele

Configurează un endpoint compatibil OpenAI sau Anthropic cu URL-ul de bază și cheia API, dacă este necesară. Testează conexiunea. Serverul local trebuie să ruleze; instrumentele externe pot transmite date separat.

Fluxuri de lucru

Dreptunghiul maxim din histogramă

Fluxuri de lucru ↗
Fluxuri de lucru
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
Spațiu de programare cu AI

Întreabă ce trebuie să păstreze refactorizarea înainte de a-i schimba forma

BarCumulus este un spațiu de programare cu IA pentru Windows în care poți revizui o modificare a implementării fără a pierde comportamentul pe care trebuia să îl păstreze. Deschide folderul proiectului și explică de ce dorești refactorizarea: o stare mai clară, o funcție auxiliară mai mică sau o cale mai ușoară spre testare. Cere modelului să inspecteze contractul existent înainte de a propune o înlocuire.

Poți conecta un model IA fără cenzură dacă este oferit prin endpointul acceptat compatibil cu OpenAI sau Anthropic. Adaugă date de autentificare când sunt necesare. Restricțiile furnizorului, capacitățile instrumentelor și limitele de context rămân în vigoare; folosește conversația pentru a dezvolta un raționament verificabil, fără a considera o implementare diferită ca fiind în sine o îmbunătățire.

Calculul dreptunghiului maxim pe baza înălțimilor barelor este un exemplu pe care îl poți aduce. Solicită o revizuire a modului în care codul tratează platourile, intrarea vidă și operațiile rămase la final. Include cazuri de test mici cu rezultate verificate manual, apoi întreabă modelul ce părți ale refactorizării propuse păstrează aceste cazuri și care le schimbă.

Inspectează diferențele rezultate și rulează verificările proiectului pe aceeași versiune pe care intenționezi să o păstrezi. Pentru modificări complicate, compară cu o implementare simplă independentă pe intrări mici. Comparația oferă dovezi în intervalul testat; nu transformă spațiul de programare într-un sistem automat de demonstrare.

Cum menții refactorizarea verificabilă

Care este un motiv util pentru a solicita refactorizarea unui algoritm?

Numește o problemă de mentenanță pe care o poți evalua, precum tranziții de stare neclare sau tratare duplicată. Cere cea mai mică propunere care o rezolvă. O înlocuire trebuie să își justifice locul prin lizibilitate și comportament verificat, nu doar prin noutate.

De ce să includ bare de aceeași înălțime în cazurile de test?

Valorile egale pot dezvălui ipoteze privind momentul în care starea în așteptare este păstrată sau eliminată. Include un platou scurt cu rezultat așteptat cunoscut. Cere modelului să explice acest caz în raport cu implementarea propusă înainte de a revizui exemple mai mari.

Demonstrează testarea diferențială echivalența a două implementări?

Ea susține echivalența pentru intrările testate și poate dezvălui neconcordanțe. Păstrează vizibile intervalul de intrări și implementarea de referință și investighează diferențele. Nu descrie testarea finită ca demonstrație pentru orice intrare posibilă acceptată de funcția din producție.

Cum trebuie să revizuiesc un script de comparație propus?

Citește limitele intrărilor și planul de execuție înainte de a-l rula. Confirmă și destinațiile instrumentelor: inferența locală necesită un server separat și nu face ca toate instrumentele de execuție conectate să fie locale. Menține deliberat mici sarcinile de testare.

Descarcă pentru Windows ↗

BarCumulus · Actualizat 2026-10-25