programming-examples/ruby/Arrays/MaxSumNoAdjacent.rb
2019-11-15 12:59:38 +01:00

17 lines
369 B
Ruby

#Given an array of positive numbers,find the maximum possible sum such that no two chosen numbers are adjacent
#Time-complexity: O(n),Auxiliary-space:O(1)
def max_sum(a)
len=a.length
incl=a[0]
excl=0
for i in 1...len
temp=[excl,incl].max
incl=excl+a[i]
excl=temp
end
return [incl,excl].max
end
max_sum([1,2,3,-1,4,5,0]) # => 9