สมมติว่าเรามีอาร์เรย์ของจำนวนเต็ม เราต้องหาความยาวขององค์ประกอบต่อเนื่องกันที่ยาวที่สุด ดังนั้นหากอินพุตเป็น [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