Morton Goldberg wrote, On 7/15/2007 10:44 AM:
> My solution to Quiz 131. It does a straight-forward O(N**2) search. I
> did add a constraint: the algorithm should return a sub-array of
> minimal length. This is because I strongly prefer  to [0, 0, 0, 0,
> 0, 0, 0].
>
> My submission also shows my preference for code that is
> readable/maintainable rather than golfed/obfuscated. (This is not
> intended as a shot at those who enjoy code golf -- I'm just saying
> it's not for me.)
>
> <code>
> # Return the non-empty sub-array of minimal length that maximizes the sum
> # of its elements.
> def max_sub_array(arry)
>    max_sum = arry.inject { |sum, n| sum += n }
>    min_length = arry.size
>    result = arry
>    (1...arry.size).each do |i|
>       (i...arry.size).each do |j|
>          sub = arry[i..j]
>          sum = sub.inject { |sum, n| sum += n }
>
Doesn't this basically make it order n cubed?

> next if sum < max_sum
>          next if sum == max_sum && sub.size >= min_length
>          max_sum, min_length, result = sum, sub.size, sub
>       end
>    end
>    result
> end
> </code>
>
> Regards, Morton
>
>
>