Computer >> Máy Tính >  >> Lập trình >> Python

Chuỗi liên tiếp dài nhất trong Python


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