BBarCumulus
Ambiente de programação com IA

Retângulo máximo em histograma

Encontre o maior retângulo sob barras de largura unitária com até 256 alturas inteiras entre zero e 1000000.

● ● ●BarCumulus●
Fluxos de trabalho · Retângulo máximo em histograma ×
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
✳Encontre o maior retângulo sob barras de largura unitária com até 256 alturas inteiras entre zero e 1000000.
✓ AlteraçõesRevise antes de aplicar ↗
Ilustração do ambiente
01

Projeto

Teste entrada vazia e alturas iguais, rejeitando negativos ou booleanos sem alterar a entrada.

02

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.

03

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.

Fluxos de trabalho

Retângulo máximo em histograma

Fluxos de trabalho ↗
Fluxos de trabalho
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 de programação com IA

Pergunte o que uma refatoração deve preservar antes de mudar sua forma

O BarCumulus é um ambiente de programação com IA para Windows para revisar uma mudança de implementação sem perder o comportamento que ela deveria preservar. Abra a pasta do projeto e explique por que deseja refatorar: estado mais claro, uma função auxiliar menor ou um caminho mais fácil para os testes. Peça ao modelo que examine o contrato existente antes de propor uma substituição.

Você pode conectar um modelo de IA sem censura se ele for oferecido pelo seu endpoint compatível com OpenAI ou endpoint Anthropic suportado. Adicione credenciais quando necessário. As restrições do provedor, as capacidades das ferramentas e os limites de contexto continuam em vigor; use a conversa para desenvolver um raciocínio que possa ser revisado, em vez de tratar uma implementação de aparência diferente como uma melhoria por si só.

Um cálculo de retângulo máximo sobre alturas de barras é um exemplo que você pode trazer. Solicite uma revisão de como o código trata patamares, entradas vazias e o trabalho pendente final. Inclua casos pequenos com resultados conferidos manualmente; depois, pergunte ao modelo quais partes da refatoração proposta preservam esses casos e quais os alteram.

Examine o diff resultante e execute as verificações do projeto na mesma versão que pretende manter. Para mudanças complicadas, compare com uma implementação simples e independente usando entradas pequenas. Essa comparação fornece evidências dentro do intervalo testado; não transforma o ambiente de programação em um sistema automático de provas.

Mantendo uma refatoração verificável

Qual é um motivo útil para solicitar a refatoração de um algoritmo?

Identifique um problema de manutenção que possa avaliar, como transições de estado pouco claras ou tratamento duplicado. Peça a menor proposta capaz de resolvê-lo. Uma substituição deve justificar seu lugar pela legibilidade e pelo comportamento verificado, não apenas pela novidade.

Por que incluir barras de mesma altura nos casos de teste?

Valores iguais podem revelar premissas sobre quando o estado pendente é mantido ou removido. Inclua um patamar curto com resultado esperado conhecido. Peça ao modelo que explique esse caso em relação à implementação proposta antes de revisar exemplos maiores.

Testes diferenciais provam que duas implementações são equivalentes?

Eles sustentam a equivalência para as entradas testadas e podem revelar divergências. Mantenha visíveis o intervalo de entrada e a implementação de referência e investigue diferenças. Não descreva testes finitos como prova para toda entrada possível aceita pela função de produção.

Como revisar um script de comparação proposto?

Leia os limites de entrada e o plano de execução antes de executá-lo. Confirme também os destinos das ferramentas: a inferência local de modelos exige um servidor separado e não torna local toda ferramenta de execução conectada. Mantenha deliberadamente pequenas as cargas dos testes.

Baixar para Windows ↗

BarCumulus · Atualizado 2026-10-25