Maximele ferestrelor glisante
Găsiți maximul fiecărei ferestre numerice complete cu lățime fixă.
from collections import deque
from math import isfinite
def window_max(values, width):
if type(width) is not int or not 1 <= width <= len(values):
raise ValueError("width")
if not all(map(isfinite, values)): raise ValueError("finite values")
queue, result = deque(), []
for i, value in enumerate(values):
while queue and queue[0] <= i - width: queue.popleft()
while queue and values[queue[-1]] <= value: queue.pop()
queue.append(i)
if i >= width - 1: result.append(values[queue[0]])
return result| Verifică înainte de aplicare | Compară comportamentul real cu rezultatul așteptat. Dacă o verificare eșuează, cercetează cauza înainte de alte modificări. |
|---|---|
| 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. |
| Proiect | Verificați maxime repetate, valori negative și limitele lățimii, respingând valori nefinite și lățimi în afara lungimii intrării. |
from collections import deque
from math import isfinite
def window_max(values, width):
if type(width) is not int or not 1 <= width <= len(values):
raise ValueError("width")
if not all(map(isfinite, values)): raise ValueError("finite values")
queue, result = deque(), []
for i, value in enumerate(values):
while queue and queue[0] <= i - width: queue.popleft()
while queue and values[queue[-1]] <= value: queue.pop()
queue.append(i)
if i >= width - 1: result.append(values[queue[0]])
return resultPăstrați schimbarea unui calcul legată de rezultatul său
WindowRidge este un spațiu de programare cu IA pentru Windows destinat discutării schimbărilor în contextul proiectului care le va utiliza. Începeți cu rezultatul așteptat de aplicație și identificați sursa care îl produce. Cereți modelului conectat să examineze traseul actual înainte de a propune o înlocuire, astfel încât detaliile implementării să rămână legate de o cerință vizibilă.
Calculul maximului într-o fereastră de lățime fixă este o sarcină utilă. Precizați că fiecare rezultat corespunde unei ferestre complete și includeți apelantul care asociază rezultatele cu pozițiile intrărilor. Discutați maxime repetate, valori negative și limitele valide ale lățimii înainte de a solicita o editare. Astfel, verificarea are un contract dincolo de obținerea celui mai mare număr într-un exemplu scurt.
Folosiți testele proiectului pentru a compara rezultatul propus cu date de test explicite. Verificați numărul și alinierea rezultatelor, precum și valorile, inclusiv lățimea unu și lățimea egală cu lungimea intrării. Dacă schimbarea urmărește îmbunătățirea eficienței, măsurați-o în propria sarcină de lucru, fără a deduce o garanție de viteză dintr-o implementare diferită.
Conectați un endpoint acceptat compatibil cu OpenAI sau Anthropic pentru a alege modelul pentru WindowRidge. Un model IA fără restricții poate fi disponibil prin acel furnizor, cu acreditări unde sunt necesare. Comportamentul modelului, capacitatea contextului și suportul pentru instrumente depind de conexiunea reală; acceptarea unei modificări de calcul necesită în continuare examinarea și verificarea dumneavoastră.
Planificarea unei modificări a calculului pe ferestre
- De ce să arăt consumatorul rezultatului, pe lângă rutină?
Un consumator poate asocia fiecare valoare cu o anumită poziție a intrării. O editare poate păstra maximele, dar deplasa asocierea. Includeți apelantul și definiți ce fereastră reprezintă fiecare rezultat, astfel încât verificarea să acopere atât alinierea, cât și aritmetica.
- Ce lățimi trebuie incluse într-un set mic de teste?
Folosiți unu, lungimea completă a intrării și o lățime invalidă, alături de cazul obișnuit cerut de aplicație. Precizați politica de respingere a valorilor invalide. Verificați atât valorile, cât și numărul rezultatelor folosind verificările existente ale proiectului.
- Cum evaluez o sugestie legată de eficiență?
Confirmați mai întâi comportamentul echivalent pe datele de test. Apoi măsurați varianta cu date reprezentative și propriile instrumente. Explicația modelului despre abordare este context util verificării, dar nu constituie dovadă de performanță în aplicație.
- Maximele repetate necesită atenție specială?
Includeți-le deoarece o implementare poate urmări pozițiile candidaților, nu doar valorile. Cereți o explicație a modului în care candidații vechi părăsesc fereastra, apoi comparați comportamentul propus cu o secvență așteptată explicită înainte de a accepta modificarea.
WindowRidge · Actualizat 2026-10-25