Skip to content

Commit 16645dc

Browse files
committed
alternative approach to max_product_subarray problem using ruby
1 parent d6d40fc commit 16645dc

1 file changed

Lines changed: 26 additions & 0 deletions

File tree

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
def subarray_with_max_product(arr)
2+
len = arr.length
3+
product_so_far = max_product_end = 1
4+
max_start_i = 0
5+
so_far_start_i = so_far_end_i = 0
6+
7+
(0..len-1).each do |i|
8+
max_product_end *= arr[i]
9+
10+
if max_product_end < 0
11+
max_product_end = 1
12+
max_start_i = i + 1
13+
end
14+
15+
if product_so_far < max_product_end
16+
product_so_far = max_product_end
17+
so_far_end_i = i
18+
so_far_start_i = max_start_i
19+
end
20+
end
21+
puts "max_product_so_far: #{product_so_far}, #{arr[so_far_start_i..so_far_end_i]}"
22+
end
23+
24+
# example:
25+
# subarray_with_max_product([2,3,6,-1,-1,9,5])
26+
# max_product_so_far: 45, [9, 5]

0 commit comments

Comments
 (0)