Máximos em janelas deslizantes
Encontre o máximo em cada janela numérica completa de largura fixa.
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| Revise antes de aplicar | Compare o comportamento real com o resultado esperado. Se uma verificação falhar, investigue a causa antes de fazer outras alterações. |
|---|---|
| Modelos | Configure um endpoint compatível com OpenAI ou Anthropic com a URL base e uma chave API, quando necessária. Teste a conexão. O servidor local precisa estar em execução; ferramentas remotas podem transmitir dados separadamente. |
| Projeto | Verifique máximos repetidos, valores negativos e limites de largura, rejeitando valores não finitos e larguras fora do tamanho da entrada. |
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 resultMantenha uma mudança de cálculo conectada à sua saída
WindowRidge é um ambiente de programação com IA para Windows para discutir mudanças no contexto do projeto que as usará. Comece pela saída esperada pelo aplicativo e identifique o código que a produz. Peça ao modelo conectado que examine o fluxo atual antes de propor uma substituição, para que os detalhes de implementação permaneçam ligados a um requisito visível.
Um cálculo de máximo em janela de largura fixa é uma tarefa útil. Especifique que cada resultado corresponde a uma janela completa e inclua o chamador que associa resultados a posições de entrada. Discuta máximos repetidos, valores negativos e limites válidos de largura antes de solicitar uma edição. Isso dá à revisão um contrato além de obter o maior número em uma amostra curta.
Use os testes do projeto para comparar a saída proposta com casos explícitos. Verifique a quantidade e o alinhamento dos resultados, além dos valores, incluindo uma largura de um e uma largura igual ao tamanho da entrada. Se a mudança pretende melhorar a eficiência, meça-a na sua própria carga de trabalho em vez de deduzir uma garantia de velocidade de uma implementação diferente.
Conecte um endpoint suportado compatível com OpenAI ou da Anthropic para escolher o modelo do WindowRidge. Um modelo de IA sem restrições pode estar disponível por esse provedor, com credenciais quando exigidas. Comportamento do modelo, capacidade de contexto e suporte a ferramentas dependem da conexão real; aceitar uma mudança de cálculo ainda exige sua revisão e verificação.
Planejando uma alteração de cálculo em janelas
- Por que mostrar o consumidor da saída além da rotina?
Um consumidor pode associar cada valor a uma posição específica da entrada. Uma edição pode preservar os máximos, mas deslocar essa associação. Inclua o chamador e defina qual janela cada saída representa para que a revisão cubra o alinhamento além da aritmética.
- Quais larguras devem fazer parte de um pequeno conjunto de testes?
Use um, o tamanho total da entrada e uma largura inválida, junto com o caso comum necessário ao aplicativo. Declare a política de rejeição de valores inválidos. Verifique os valores e a quantidade de resultados usando as verificações existentes do projeto.
- Como avalio uma sugestão relacionada à eficiência?
Primeiro confirme o comportamento equivalente nos seus casos de teste. Depois meça a alternativa com dados representativos e suas próprias ferramentas. A explicação de uma abordagem pelo modelo é um contexto útil de revisão, mas não é evidência de desempenho no aplicativo.
- Máximos repetidos precisam de atenção especial?
Inclua-os porque uma implementação pode acompanhar posições candidatas além de valores. Peça uma explicação de como candidatos antigos saem da janela e compare o comportamento proposto com uma sequência esperada explícita antes de aceitar a alteração.
WindowRidge · Atualizado 2026-10-25