Danh sách

Chuỗi số liên tiếp dài nhất (Longest Consecutive Sequence)

Trung bình
Bảng Băm & Tập Hợp (Hash Map & Hash Set) 1200ms 256MB

Cho một mảng các số nguyên chưa sắp xếp nums. Hãy tìm độ dài của chuỗi phần tử liên tiếp dài nhất (các phần tử có giá trị tăng dần liên tiếp cách nhau 1 đơn vị).

Yêu cầu bắt buộc: Giải thuật phải chạy trong thời gian O(n).

Ví dụ 1:

Input: nums = [100, 4, 200, 1, 3, 2]
Output: 4
Giải thích: Dãy liên tiếp là [1, 2, 3, 4], độ dài là 4.
Định Dạng Đầu Vào (Input)
Một dòng chứa mảng số nguyên nums
Định Dạng Đầu Ra (Output)
Một số nguyên duy nhất là độ dài chuỗi liên tiếp
Ràng Buộc (Constraints)
  • 0 <= nums.length <= 10^5
Ví Dụ Kiểm Thử Mẫu
Ví dụ 1:
Input:
[100, 4, 200, 1, 3, 2]
Output:
4
Giải thích: Dãy 1, 2, 3, 4 dài 4
Ví dụ 2:
Input:
[0, 3, 7, 2, 5, 8, 4, 6, 0, 1]
Output:
9
Giải thích: Dãy từ 0 đến 8 dài 9
Gợi ý được sắp xếp theo cấp độ tiến dần. Hãy mở từng gợi ý khi bạn thực sự cần thêm định hướng.

Kỹ thuật Hash Set O(n)

Cho các số vào HashSet. Chỉ bắt đầu đếm dãy từ số x khi x - 1 KHÔNG có trong Set (nghĩa là x là số bắt đầu của một chuỗi liên tiếp).

Vui lòng đăng nhập

Đăng nhập tài khoản học viên để xem lịch sử nộp bài của bạn.

Đăng nhập
Ctrl + Enter: Chạy thử
Dữ liệu đầu vào (Input):
[100, 4, 200, 1, 3, 2]
Kết quả kỳ vọng (Expected Output):
4
Dữ liệu đầu vào (Input):
[0, 3, 7, 2, 5, 8, 4, 6, 0, 1]
Kết quả kỳ vọng (Expected Output):
9
Nhập STDIN của bạn (Mỗi dòng một tham số):

Bấm Chạy thử để kiểm tra các bộ test mẫu hoặc Nộp bài để chấm điểm chính thức.

Đang gửi mã và thực thi trên Sandbox Engine...
Nhấn Ctrl+Enter để chạy

vừa nâng cấp PRO khóa 1 phút trước   Tìm hiểu khóa học