码迷,mamicode.com
首页 > 编程语言 > 详细

[LeetCode]题解(python):152-Maximum Product Subarray

时间:2016-05-10 16:41:48      阅读:416      评论:0      收藏:0      [点我收藏+]

标签:

题目来源:

  https://leetcode.com/problems/maximum-product-subarray/


 

题意分析:

  给定一个数组,这个数组所有子数组都有一个乘积,那么返回最大的乘积。


 

题目思路:

  由于题目输入的都是整型的,所以所有的数相差获得的是最大或者最小值。那么我们同时记录可以获得的最大和最小值,每次更新。


 

代码(python):

技术分享
class Solution(object):
    def maxProduct(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        if len(nums) == 0:
            return 0
        res = nums[0]
        ans = max_ans = min_ans = nums[0]
        i = 1
        while i < len(nums):
            tmp1,tmp2 = nums[i]*max_ans,nums[i]*min_ans
            max_ans = max(nums[i],max(tmp1,tmp2))
            min_ans = min(nums[i],min(tmp1,tmp2))
            ans = max(max_ans,ans)
            i += 1
        return ans
View Code

 

[LeetCode]题解(python):152-Maximum Product Subarray

标签:

原文地址:http://www.cnblogs.com/chruny/p/5478317.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!