[Buổi 9][Mảng một chiều][ADV] Bài 1: Đoạn dương liên tiếp dài nhất
Đoạn dương liên tiếp dài nhất
Bối cảnh
Một chuỗi số đo có các giai đoạn dương liên tiếp. Hệ thống cần biết giai đoạn dài nhất có bao nhiêu phần tử.
Bài Advanced vẫn chỉ dùng mảng và vòng lặp, nhưng đòi hỏi quản lý hai trạng thái: độ dài hiện tại và tốt nhất.
Yêu cầu
- Đọc n và mảng.
- Xét các đoạn liên tiếp mà mọi phần tử đều > 0.
- Tìm độ dài lớn nhất.
- In độ dài.
Input
Dòng 1: n. Dòng 2: n số.
Output
Một số nguyên.
Ràng buộc
1 ≤ n ≤ 5000, |a[i]| ≤ 10^9.
Ví dụ 1
Input
8
1 2 -1 3 4 5 0 6
Output
3
Giải thích
Các đoạn dương có độ dài 2 (1 2), 3 (3 4 5) và 1 (6). Dài nhất là 3.
Ví dụ 2
Input
5
-1 -2 -3 -4 -5
Output
0
Giải thích
Không có phần tử dương nên mọi đoạn dương có độ dài 0; kết quả là 0.
Thông tin học tập
- Module: M03
- Buổi: B09
- Loại bài: ADVANCED
- Độ khó: Hard
- Concepts: static arrays, longest streak, state tracking, traversal
- Giới hạn kiến thức: B01-B09
- Time limit: 2 second(s)
- Memory limit: 256 MB
- Point: 100
Comments