Python程序:从数字列表中找到最长符号交替子序列的长度

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的最大值

让我们看下面的实现以更好地理解−

更多Python相关文章,请阅读:Python 教程

示例

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程