正と負の値を持つ配列が与えられた場合、交互に繰り返されるスライスの最大サイズが返され、2つの要素が異なる符号を持つ場合は交互になり、ゼロは負と正の両方として扱われます。正と負の整数を交互に持つ最長スライス
例 a = [1, -5, 23, 0, 1, 1, 0, 2, -5, 3, -1, 1, 2, 3]
はリターン7
(配列[1, 0, 2, -5, 3, -1, 1]
有する最大交流スライスサイズ)指定
予想ランタイムがO(n)
あります。
私は最大の和とsequnceのような問題を解決しようとした:
def sol(a):
n = len(a)
l = 0
left = 0
right = 0
tot = 1
for i in range(1,n):
if a[i]*a[i-1] > 0:
l = i + 1
else:
if i-l > right-left:
right = i
left = l
tot = max(tot,right-left+1)
return tot
私は私が読んdin't推測、これは間違ったアプローチであると思いますが、他の
あなたの問題は何ですか?ディスカッションを開始するあなたの努力を示してください。 – MBo
私は自分のアプローチも追加しました。最初は@MBo – theSharpShooter
は '1、-5、23、0、1、0、2、-5、3、-1,1 'スライス? – thebenman