Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ลำดับต่อเนื่องที่ยาวที่สุดใน Python


สมมติว่าเรามีอาร์เรย์ของจำนวนเต็ม เราต้องหาความยาวขององค์ประกอบต่อเนื่องกันที่ยาวที่สุด ดังนั้นหากอินพุตเป็น [100, 4, 250, 1, 3, 2] คำตอบจะเป็น 4 เนื่องจากลำดับที่ยาวที่สุดต่อเนื่องกันคือ [1,2,3,4]

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • กำหนดอาร์เรย์ให้ยาวที่สุด :=0

  • สำหรับฉันในอาร์เรย์ช่วง -

    • ถ้า i – 1 ไม่อยู่ใน −

      • ปัจจุบัน :=ผม สตรีค :=0

      • ในขณะที่ฉันอยู่ใน −

        • เพิ่ม i 1, เพิ่มสตรีค 1

        • ยาวที่สุด :=สูงสุดของยาวที่สุดและสตรีค

  • กลับมานานที่สุด

ตัวอย่าง

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

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]))

อินพุต

[100,4,250,1,3,2]

ผลลัพธ์

4