Tổng đoạn con lớn nhất (thuật toán Kadane)
Tìm đoạn con liên tiếp có tổng lớn nhất dạy tư duy quy hoạch động: tại mỗi vị trí chỉ cần biết đoạn tốt nhất kết thúc ở đây. Kadane giải trong O(N) thay vì thử mọi đoạn O(N2).
Tiến độ của tôi ở bài này
Điểm được lưu vào tài khoản sau khi chấm bài.
Đang tải điểm của bạn…
Kiến thức và chủ đề
Kiến thức tiên quyết: arrays one dimensional, for loop.
Nội dung đề bài
Mô tả bài toán
Tìm đoạn con liên tiếp có tổng lớn nhất dạy tư duy quy hoạch động: tại mỗi vị trí chỉ cần biết đoạn tốt nhất kết thúc ở đây. Kadane giải trong O(N) thay vì thử mọi đoạn O(N2).
Yêu cầu
Đọc từ stdin: dòng 1 là N; dòng 2 là N số nguyên. In ra tổng lớn nhất của một đoạn con liên tiếp khác rỗng.
Quy ước nộp bài
- Chỉ cần viết một chương trình đọc
stdinvà in rastdout. Bài này không yêu cầu viết hàm. - Không dùng
coutđể in lời nhắc trước khi đọc dữ liệu. Lời nhắc sẽ lọt vàostdoutvà làm bài sai. - Chỉ in đúng nội dung ở mục Output. Không in thêm nhãn, dòng trống hay ký tự thừa.
- Output được so khớp từng ký tự, phân biệt chữ hoa/thường và dấu câu.
Input
Hai dòng: N và dãy số.
Output
Một số nguyên: tổng đoạn con lớn nhất.
Ràng buộc
- 1 ≤ N ≤ 105; |ai| ≤ 109.
Ví dụ 1
Input
8
-2 1 -3 4 -1 2 1 -5Output
6
Đoạn `4, -1, 2, 1` có tổng 6, lớn nhất.Ví dụ 2
Input
3
-5 -2 -8Output
-2
Mọi số đều âm nên đoạn tốt nhất là phần tử lớn nhất, -2.Gợi ý và lời giải chỉ mở sau khi bạn bấm Nộp bài. Giáo viên và quản trị viên mở được ngay.
Góp ý & báo lỗi bài tập
Đề bài chưa rõ, test có vấn đề hay bạn có ý tưởng giúp bài tốt hơn? Gửi cho đội ngũ AI Empire nhé — mỗi góp ý đều được đọc.
