If (A.length <3): return 0 Else: for i = 1 to A.length if(if A[i]>= A[i-1]+A[i+1] and A[i]>0): wynik = wynik + A[i] i = i + 3 else if (A[i] < A[i-1]+A[i-1]): if(A[i-1]>0): wynik = wynik + A[i-1] i = i + 3 if(A[i+1]>0): wynik = wynik + A[i+1] i = i + 3 return wynik
@exother @asciiterror Aby wykonać sumę potrzebne są przynajmniej 2 składniki. Ciężko wśród mniej niż 3 liczb w tablicy znaleźć 2, które nie będą ze sobą sąsiadować
@NotABigFan rzeczywiście zauważyłem to chwilę po wysłaniu, wciąż nie na tym polega zadanie a przykład pokazuje jak istotne jest czytanie ze zrozumieniem
Dany jest ciąg liczb całkowitych. Zwróć największą sumę niesąsiadujących ze sobą liczb z tego ciągu.
np:
[] -> 0
[-1, -2] -> 0
[5, 1, 1, 5] -> 10
[2, 0, 4, -2, -3, 0, 6, 2, 5] -> 17
Czas O(n) i jako bonus pamięć O(1)
#dailycodingproblem #programowanie
Else:
for i = 0 to A.length
if(A[i]>A[i+1] and A[i]>A[i-1] and A[i]>0):
wynik = wynik + A[i]
i = i + 1
return wynik
Else:
for i = 1 to A.length
if(if A[i]>= A[i-1]+A[i+1] and A[i]>0):
wynik = wynik + A[i]
i = i + 3
else if (A[i] < A[i-1]+A[i-1]):
if(A[i-1]>0):
wynik = wynik + A[i-1]
i = i + 3
if(A[i+1]>0):
wynik = wynik + A[i+1]
i = i + 3
return wynik
Taka wersja?