python3题解 | #乘积为正数的最长连续子数组#
乘积为正数的最长连续子数组
https://www.nowcoder.com/practice/0112b9b5a09048d89309f55ea666db91
import sys # # for line in sys.stdin: # # a = line.split() # # print(int(a[0]) + int(a[1])) # n = int(input()) # nums = list(map(int,input().split())) # z = [0]*n # f = [0]*n # z[0] = 1 if nums[0]>0 else 0 # f[0] = 1 if nums[0]<0 else 0 # res = 0 # for i in range(1,n): # if nums[i]>0: # z[i] = z[i-1] +1 # f[i] = f[i-1] +1 if f[i-1]>0 else 0 # elif nums[i]<0: # z[i] = f[i-1] +1 if f[i-1] >0 else 0 # f[i] = z[i-1] +1 # else: # z[i] = 0 # f[i] = 0 # res= max(res,z[i]) n = int(input()) nums = list(map(int,input().split())) z = [0]*n f = [0]*n z[0] = 1 if nums[0]>0 else 0 f[0] = 1 if nums[0]<0 else 0 res = 0 for i in range(1,n): if nums[i]>0: z[i] = z[i-1]+1 f[i] = f[i-1] +1 if f[i-1]>0 else 0 elif nums[i]<0: z[i] = f[i-1]+1 if f[i-1]>0 else 0 f[i] = z[i-1] +1 else: z[i] =0 f[i] =0 res = max(res,z[i]) print(res)