Python程式:查詢列表中符號交替子序列的最大長度
假設我們有一個名為 nums 的數字列表,我們需要找到符號在每個連續數字上翻轉的最長子序列的長度。
因此,如果輸入類似於 nums = [1, 3, -6, 4, -3],則輸出將為 4,因為我們可以選擇 [1, -6, 4, -3]。
為了解決這個問題,我們將遵循以下步驟:
- pos := 0, neg := 0
- 對於 nums 中的每個 n,執行以下操作:
- 如果 n < 0,則
- neg := pos + 1
- 否則,
- pos := neg + 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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP