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