สมมติว่าเรามีรายการของตัวเลขที่เรียกว่า nums เราต้องหาความยาวของลำดับรองที่ยาวที่สุดที่พลิกเครื่องหมายบนแต่ละหมายเลขที่ต่อเนื่องกัน
ดังนั้น หากอินพุตเป็น nums =[1, 3, -6, 4, -3] ผลลัพธ์จะเป็น 4 ตามที่เราเลือก [1, -6, 4, -3] ได้
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- ตำแหน่ง :=0, ไม่ติด :=0
- สำหรับแต่ละ n เป็น nums ทำ
- ถ้า n <0 แล้ว
- neg :=pos + 1
- มิฉะนั้น
- pos :=ลบ + 1
- ถ้า n <0 แล้ว
- ผลตอบแทนสูงสุดของ pos และ neg
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
ตัวอย่าง
class Solution: def solve(self, nums): pos = neg = 0 for n in nums: if n < 0: neg = pos + 1 else: pos = neg + 1 return max(pos, neg) ob = Solution() nums = [1, 3, -6, 4, -3] print(ob.solve(nums))
อินพุต
[1, 3, -6, 4, -3]
ผลลัพธ์
4