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

假设我们有一个称为nums的数字列表,我们必须找到在每个连续数字上翻转符号的最长子序列的长度。

因此,如果输入类似于nums = [1,3,-6,4,-3],那么输出将为4,因为我们可以选择[1,-6,4,-3]。

为了解决这个问题,我们将遵循以下步骤-

  • pos:= 0,neg:= 0

  • 对于每n个数字,执行

    • pos:= neg + 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
    猜你喜欢