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
  • 返回 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

更新於: 2020年11月19日

165 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告

© . All rights reserved.