Skip to content

Commit 513c17e

Browse files
committed
乘积最大子序列
1 parent 190f8a9 commit 513c17e

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

maximum_product_subarray.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# -*- coding: utf-8 -*-
2+
3+
class Solution:
4+
# @param nums: an integer[]
5+
# @return: an integer
6+
def maxProduct(self, nums):
7+
# write your code here
8+
# 用两个数组保存到当前的最大最小值,方便负数处理。
9+
ret = nums[0]
10+
max_products, min_products = [0] * len(nums), [0] * len(nums)
11+
max_products[0], min_products[0] = nums[0], nums[0]
12+
for i in xrange(1, len(nums)):
13+
max_products[i] = max(max_products[i - 1] * nums[i], \
14+
min_products[i - 1] * nums[i], nums[i])
15+
min_products[i] = min(max_products[i - 1] * nums[i], \
16+
min_products[i - 1] * nums[i], nums[i])
17+
if max_products[i] > ret:
18+
ret = max_products[i]
19+
return ret

0 commit comments

Comments
 (0)