mirror of
https://gitlab.com/mfocko/LeetCode.git
synced 2024-11-14 09:59:41 +01:00
30 lines
630 B
Ruby
30 lines
630 B
Ruby
|
# @param {Integer[]} nums
|
||
|
# @return {Integer}
|
||
|
def max_sub_array(nums)
|
||
|
if nums.empty? then
|
||
|
return nil
|
||
|
end
|
||
|
|
||
|
sum, running_sum = nums.first, nums.first
|
||
|
nums.drop(1).each { |x|
|
||
|
running_sum = [running_sum + x, x].max
|
||
|
sum = [sum, running_sum].max
|
||
|
}
|
||
|
|
||
|
return sum
|
||
|
end
|
||
|
|
||
|
RSpec.describe "max_sub_array of " do
|
||
|
it "[-2,1,-3,4,-1,2,1,-5,4] is 6" do
|
||
|
expect(max_sub_array([-2,1,-3,4,-1,2,1,-5,4])).to eq(6)
|
||
|
end
|
||
|
|
||
|
it "[1] is 1" do
|
||
|
expect(max_sub_array([1])).to eq(1)
|
||
|
end
|
||
|
|
||
|
it "[5,4,-1,7,8] is 23" do
|
||
|
expect(max_sub_array([5,4,-1,7,8])).to eq(23)
|
||
|
end
|
||
|
end
|