Maxima klouzavých oken
Najděte maximum každého úplného číselného okna pevné šířky.
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| Před použitím zkontrolujte | Porovnejte skutečné chování s očekávaným výsledkem. Pokud kontrola selže, před dalšími změnami zjistěte příčinu. |
|---|---|
| Modely | Nastavte endpoint kompatibilní s OpenAI nebo Anthropic pomocí základní URL a případného API klíče. Otestujte připojení. Lokální server modelu musí běžet; vzdálené nástroje mohou data odesílat samostatně. |
| Projekt | Ověřte opakovaná maxima, záporné hodnoty a hranice šířky a odmítněte nekonečné hodnoty i šířky mimo délku vstupu. |
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 resultPropojte změnu výpočtu s jeho výstupem
WindowRidge je programátorské prostředí s AI pro Windows pro diskusi o změnách v kontextu projektu, který je využije. Začněte výstupem očekávaným aplikací a určete zdroj, který jej vytváří. Než připojený model navrhne náhradu, požádejte ho o prozkoumání současné cesty, aby implementační podrobnosti zůstaly spojené s viditelným požadavkem.
Užitečnou úlohou je výpočet maxima v okně pevné šířky. Určete, že každý výsledek odpovídá úplnému oknu, a připojte volající kód přiřazující výsledky k pozicím vstupu. Před žádostí o změnu proberte opakovaná maxima, záporné hodnoty a platné meze šířky. Kontrola tak získá smlouvu přesahující nalezení největšího čísla v krátké ukázce.
Projektovými testy porovnejte navržený výstup s výslovnými testovacími daty. Ověřte počet a zarovnání výsledků i hodnoty včetně šířky jedna a šířky rovné délce vstupu. Má-li změna zvýšit efektivitu, změřte ji při vlastní zátěži místo odvozování záruky rychlosti z jiné implementace.
Pro výběr modelu pro WindowRidge připojte podporovaný koncový bod kompatibilní s OpenAI nebo Anthropic. Poskytovatel může nabízet model AI bez omezení, případně s požadovanými přihlašovacími údaji. Chování modelu, kapacita kontextu a podpora nástrojů závisejí na skutečném připojení; přijetí změny výpočtu stále vyžaduje vaši kontrolu a ověření.
Plánování úpravy výpočtu v oknech
- Proč ukázat příjemce výstupu i samotnou rutinu?
Příjemce může každou hodnotu přiřazovat ke konkrétní vstupní pozici. Úprava může zachovat maxima a zároveň posunout přiřazení. Připojte volající kód a definujte okno reprezentované každým výstupem, aby kontrola pokryla zarovnání i aritmetiku.
- Které šířky patří do malé sady testů?
Použijte jednu, celou délku vstupu a neplatnou šířku vedle běžného případu potřebného aplikací. Stanovte pravidlo odmítání neplatných hodnot. Stávajícími kontrolami projektu ověřte hodnoty i počet výsledků.
- Jak posoudit návrh související s efektivitou?
Nejprve potvrďte ekvivalentní chování na testovacích datech. Potom kandidáta změřte s reprezentativními daty a vlastními nástroji. Vysvětlení přístupu modelem je užitečný kontext kontroly, nikoli důkaz výkonu ve vaší aplikaci.
- Vyžadují opakovaná maxima zvláštní pozornost?
Zahrňte je, protože implementace může sledovat pozice kandidátů i hodnoty. Požadujte vysvětlení, jak staří kandidáti opouštějí okno, a před přijetím úpravy porovnejte návrh s výslovnou očekávanou posloupností.
WindowRidge · Aktualizováno 2026-10-25