Рабочая среда с ИИ для кода
Максимальная сумма непрерывного фрагмента
SpanKestrel предназначен для работы с кодом, где важна сумма непрерывного отрезка данных. В Windows-клиенте можно обсудить алгоритм с ИИ и изучить обработку отрицательных значений до принятия правок.
● ● ●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 целых чисел с модулями до миллиарда и верните сумму и полуоткрытые границы.
✓ ИзмененияПроверьте перед применением ↗
Иллюстрация рабочей среды
- Подключение
- Базовый URL, учётные данные и доступный сервер.
- Проект
- Проверьте полностью отрицательные данные и пустой ввод, разрешая равенства по самому раннему началу, затем концу.
- Проверьте перед применением
- Сравните фактическое поведение с ожидаемым. Если проверка не проходит, разберитесь в причине перед следующими изменениями.
Конкретная отправная точка
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