Gegeben eine Matrix mit positiven und negativen Werten, die maximale kontinuierliche alternierende Schichtgröße zurückgibt, zwei Elemente wechseln sich ab, wenn sie unterschiedliche Vorzeichen haben, Null wird sowohl als negativ als auch als positiv behandelt.Längste Schicht mit abwechselnd positiven und negativen ganzen Zahlen
Beispiel Gegeben a = [1, -5, 23, 0, 1, 1, 0, 2, -5, 3, -1, 1, 2, 3]
return 7
(die Reihenfolge hat [1, 0, 2, -5, 3, -1, 1]
maximale Wechselscheibengröße)
Die erwartete Laufzeit ist O(n)
.
Ich habe versucht, das Problem wie sequnce mit max Summe zu lösen:
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
Ich denke, dies ist ein falscher Ansatz, aber denken kann, nicht von anderen
Und was ist Ihr spezifisches Problem? Zeigen Sie Ihre Bemühungen, eine Diskussion anzuregen. – MBo
Ich habe meinen Ansatz auch hinzugefügt, tut mir leid, dass nicht zu Beginn @MBo – theSharpShooter
sollte nicht '1, -5, 23, 0, 1, 0, 2, -5, 3, -1, 1' die längste sein wie Scheibe? – thebenman