152. 乘积最大子数组
思路
maxs:记录当前位置最大乘积
mins:记录当前位置最小乘积,因为当前位置的最大乘积 有可能是i-1的最小乘积*当前位置
如i-1最小乘积为-3,最大乘积为4 i当前位置值为-2 则
dp[i]最大乘积自然是-3*(-2)=6
class Solution(object):def maxProduct(self, nums):""":type nums: List[int]:rtype: int"""if len(nums)==1:return nums[0]maxs =[0]*len(nums)mins =[0]*len(nums)dp =[0]*len(nums)maxs[0] ,mins[0],dp[0]= nums[0],nums[0],nums[0]for i in range(1,len(nums)):maxs[i]=max(maxs[i-1]*nums[i],mins[i-1]*nums[i],nums[i])mins[i]=min(maxs[i-1]*nums[i],mins[i-1]*nums[i],nums[i])dp[i]=maxs[i]return max(dp)