LeetCode 0485
About 1 min
0485. Max Consecutive Ones
- Tags: Mảng
- Độ khó: Dễ
Tóm tắt đề bài
Mô tả: Cho một mảng nhị phân , mảng chỉ chứa các số và .
Yêu cầu: Tính số lượng số liên tiếp lớn nhất trong mảng.
Giới hạn:
- .
- chỉ có thể là hoặc .
Ví dụ:
- Ví dụ 1:
Input: nums = [1,1,0,1,1,1]
Output: 3
Explanation: Có hai số $1$ liên tiếp ở đầu và ba số $1$ liên tiếp ở cuối, vì vậy số lượng số $1$ liên tiếp lớn nhất là $3$.
- Ví dụ 2:
Input: nums = [1,0,1,1,0,1]
Output: 2
Ý tưởng giải quyết
Ý tưởng 1: Duyệt mảng một lần
- Sử dụng hai biến và . để lưu trữ số lượng số liên tiếp hiện tại, để lưu trữ số lượng số liên tiếp lớn nhất.
- Tiến hành duyệt qua mảng một lần, đếm số lượng số liên tiếp hiện tại và cập nhật số lượng số liên tiếp lớn nhất.
- Trả về là kết quả.
Ý tưởng 1: Cài đặt
class Solution:
def findMaxConsecutiveOnes(self, nums: List[int]) -> int:
ans = 0
cnt = 0
for num in nums:
if num == 1:
cnt += 1
ans = max(ans, cnt)
else:
cnt = 0
return ans
Ý tưởng 1: Phân tích độ phức tạp
- Độ phức tạp thời gian: .
- Độ phức tạp không gian: .