SSpanKestrel
Робоче середовище з ШІ для коду

Максимальна сума неперервного фрагмента

Знайдіть максимальну суму неперервного фрагмента до 1000 цілих чисел із модулями до мільярда та поверніть суму й напіввідкриті межі.

● ● ●SpanKestrel●
Сценарії · Максимальна сума неперервного фрагмента ×
def maximum_subarray(values):
    if type(values) not in (list, tuple) or len(values) > 1000 or any(type(v) is not int or abs(v) > 10**9 for v in values):
        raise ValueError("subarray.input")
    if not values:
        return None
    best = None
    total, start = 0, 0
    for end, value in enumerate(values, 1):
        if total < 0:
            total, start = 0, end - 1
        total += value
        candidate = (total, start, end)
        if best is None or (-total, start, end) < (-best[0], best[1], best[2]):
            best = candidate
    return best
✳Знайдіть максимальну суму неперервного фрагмента до 1000 цілих чисел із модулями до мільярда та поверніть суму й напіввідкриті межі.
✓ ЗміниПеревірте перед застосуванням ↗
Ілюстрація робочого середовища
Моделі
Налаштуйте OpenAI-сумісний або Anthropic endpoint із базовою URL-адресою та API-ключем, якщо він потрібен. Перевірте з’єднання. Локальний сервер моделі має працювати; віддалені інструменти можуть окремо передавати дані.
Проєкт
Перевірте лише від’ємні значення й порожній ввід, розв’язуючи нічиї за найранішим початком, потім кінцем.
Перевірте перед застосуванням
Порівняйте фактичну поведінку з очікуваним результатом. Якщо перевірка не проходить, з’ясуйте причину перед наступними змінами.
Сценарії

Максимальна сума неперервного фрагмента

Сценарії ↗
Сценарії
def maximum_subarray(values):
    if type(values) not in (list, tuple) or len(values) > 1000 or any(type(v) is not int or abs(v) > 10**9 for v in values):
        raise ValueError("subarray.input")
    if not values:
        return None
    best = None
    total, start = 0, 0
    for end, value in enumerate(values, 1):
        if total < 0:
            total, start = 0, end - 1
        total += value
        candidate = (total, start, end)
        if best is None or (-total, start, end) < (-best[0], best[1], best[2]):
            best = candidate
    return best
Робоче середовище з ШІ для коду

Тут починається ваша наступна ідея.

Завантажити для Windows ↗