Giả sử chúng ta có một mảng các số nguyên. Chúng ta phải tìm độ dài của dãy phần tử liên tiếp dài nhất. Vì vậy, nếu đầu vào là [100, 4, 250, 1, 3, 2], câu trả lời sẽ là 4, vì dãy liên tiếp dài nhất là [1,2,3,4].
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
-
đặt mảng, dài nhất:=0
-
cho tôi trong mảng phạm vi -
-
nếu tôi - 1 không có trong -
-
hiện tại:=i, streak:=0
-
trong khi tôi ở -
-
tăng i lên 1, tăng streak lên 1
-
dài nhất:=tối đa của dài nhất và liên tục
-
-
-
-
trả về lâu nhất
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau đây để hiểu rõ hơn -
class Solution(object): def longestConsecutive(self, a): a = set(a) longest = 0 for i in a: if i-1 not in a: current = i streak = 0 while i in a: i+=1 streak+=1 longest = max(longest,streak) return longest ob = Solution() print(ob.longestConsecutive([100,4,250,1,3,2]))
Đầu vào
[100,4,250,1,3,2]
Đầu ra
4