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

โปรแกรมหาความยาวของลำดับที่ยาวที่สุดใน Python


สมมติว่าเรามีอาร์เรย์ของตัวเลขที่ไม่เรียงลำดับ เราต้องหาความยาวของลำดับที่ยาวที่สุดขององค์ประกอบที่ต่อเนื่องกัน

ดังนั้น หากอินพุตมีค่าเท่ากับ nums =[70, 7, 50, 4, 6, 5] ผลลัพธ์จะเป็น 4 เนื่องจากลำดับที่ยาวที่สุดขององค์ประกอบที่ต่อเนื่องกันคือ [4, 5, 6, 7] ดังนั้นเราจึงคืนความยาว:4.

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

  • nums :=องค์ประกอบที่เป็นเอกลักษณ์ทั้งหมดของ nums

  • max_cnt :=0

  • สำหรับแต่ละ num เป็น num ทำ

    • ถ้า num - 1 ไม่เป็น num แล้ว

      • cnt :=0

      • ในขณะที่ num มีอยู่ใน num ให้ทำ

        • num :=num + 1

        • cnt :=cnt + 1

      • max_cnt :=สูงสุดของ max_cnt และ cnt

  • ส่งคืน max_cnt

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

ตัวอย่าง

class Solution:
   def solve(self, nums):
      nums = set(nums)
      max_cnt = 0
      for num in nums:
         if num - 1 not in nums:
            cnt = 0
            while num in nums:
               num += 1
               cnt += 1
            max_cnt = max(max_cnt, cnt)
      return max_cnt
ob = Solution()
nums = [70, 7, 50, 4, 6, 5]
print(ob.solve(nums))

อินพุต

[70, 7, 50, 4, 6, 5]

ผลลัพธ์

4