Không gian lập trình với AI
Tổng đoạn liên tiếp lớn nhất
Tìm tổng đoạn liên tiếp lớn nhất trong tối đa 1000 số nguyên có trị tuyệt đối không quá một tỷ, trả về tổng và biên cuối loại trừ.
● ● ●SpanKestrel●
Quy trình · Tổng đoạn liên tiếp lớn nhất ×
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✳Tìm tổng đoạn liên tiếp lớn nhất trong tối đa 1000 số nguyên có trị tuyệt đối không quá một tỷ, trả về tổng và biên cuối loại trừ.
✓ Thay đổiKiểm tra trước khi áp dụng ↗
Minh họa không gian làm việc
- Mô hình
- Cấu hình endpoint tương thích OpenAI hoặc Anthropic bằng URL cơ sở và khóa API nếu cần. Kiểm tra kết nối. Máy chủ mô hình cục bộ phải đang chạy; công cụ từ xa có thể truyền dữ liệu riêng.
- Dự án
- Thử toàn số âm và đầu vào rỗng, phá hòa bằng điểm đầu rồi điểm cuối sớm nhất.
- Kiểm tra trước khi áp dụng
- So sánh hành vi thực tế với kết quả mong đợi. Nếu kiểm tra thất bại, tìm nguyên nhân trước khi sửa tiếp.
Quy trình
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