假设我们有一个称为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