BBarCumulus
Espacio de programación con IA

Rectángulo máximo de un histograma

Encuentra el rectángulo máximo bajo barras de ancho uno con hasta 256 alturas enteras entre cero y 1000000.

● ● ●BarCumulus●
Flujos de trabajo · Rectángulo máximo de un 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
✳Encuentra el rectángulo máximo bajo barras de ancho uno con hasta 256 alturas enteras entre cero y 1000000.
✓ CambiosRevisa antes de aplicar ↗
Vista ilustrativa
01

Proyecto

Prueba la entrada vacía y alturas iguales, rechazando negativos o booleanos sin modificar la entrada.

02

Revisa antes de aplicar

Compara el comportamiento real con el resultado esperado. Si una prueba falla, investiga la causa antes de hacer más cambios.

03

Modelos

Configura un endpoint compatible con OpenAI o Anthropic usando la URL base y, si hace falta, una clave API. Prueba la conexión. Un servidor local debe estar en ejecución; las herramientas remotas pueden enviar datos por separado.

Flujos de trabajo

Rectángulo máximo de un histograma

Flujos de trabajo ↗
Flujos de trabajo
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
Espacio de programación con IA

Pregunta qué debe conservar una refactorización antes de cambiar su forma

BarCumulus es un espacio de programación con IA para Windows donde revisar un cambio de implementación sin perder el comportamiento que debía conservar. Abre la carpeta del proyecto y explica por qué quieres refactorizar: un estado más claro, una función auxiliar más pequeña o pruebas más sencillas. Pide al modelo que inspeccione el contrato existente antes de proponer una sustitución.

Puedes conectar un modelo de IA sin censura si lo ofrece tu endpoint admitido compatible con OpenAI o de Anthropic. Añade credenciales cuando sean necesarias. Las restricciones del proveedor, las capacidades de las herramientas y los límites de contexto siguen vigentes; usa la conversación para desarrollar razonamientos revisables, en lugar de considerar mejor una implementación solo porque tenga otro aspecto.

Un ejemplo es el cálculo del rectángulo máximo a partir de alturas de barras. Solicita una revisión de cómo trata el código las mesetas, la entrada vacía y el trabajo pendiente al final. Incluye casos pequeños con resultados comprobados manualmente y pregunta al modelo qué partes de la refactorización propuesta conservan esos casos y cuáles los cambian.

Inspecciona las diferencias resultantes y ejecuta las comprobaciones del proyecto en la misma versión que piensas conservar. Para cambios complejos, compara con una implementación sencilla independiente usando entradas pequeñas. Esa comparación aporta pruebas dentro del intervalo examinado; no convierte el espacio de programación en un sistema automático de demostración.

Una refactorización que se pueda evaluar

¿Qué motivo útil puede justificar refactorizar un algoritmo?

Indica un problema de mantenimiento evaluable, como transiciones de estado poco claras o tratamiento duplicado. Pide la propuesta más pequeña que lo resuelva. Una sustitución debe justificarse por su legibilidad y comportamiento verificado, no solo por su novedad.

¿Por qué incluir barras de igual altura en los casos de prueba?

Los valores iguales pueden revelar supuestos sobre cuándo se conserva o elimina el estado pendiente. Incluye una meseta corta con resultado esperado conocido. Pide al modelo que explique ese caso según la implementación propuesta antes de revisar ejemplos mayores.

¿Las pruebas diferenciales demuestran que dos implementaciones son equivalentes?

Respaldan la equivalencia para las entradas probadas y pueden revelar discrepancias. Mantén visibles el intervalo de entradas y la implementación de referencia, e investiga las diferencias. No describas pruebas finitas como una demostración para todas las entradas posibles que acepta la función de producción.

¿Cómo debo revisar un script de comparación propuesto?

Lee sus límites de entrada y su plan de ejecución antes de ejecutarlo. Confirma también los destinos de las herramientas: la inferencia local requiere un servidor independiente y no hace locales todas las herramientas de ejecución conectadas. Mantén deliberadamente pequeñas las cargas de prueba.

Descargar para Windows ↗

BarCumulus · Actualizado 2026-10-25