首页 > 其他 > 详细

1. 线性DP

时间:2020-04-20 17:18:12      阅读:48      评论:0      收藏:0      [点我收藏+]

152. 乘积最大子数组  https://leetcode-cn.com/problems/maximum-product-subarray/

func maxProduct(nums []int) int {
	preMax,preMin,curMax,curMin,res := nums[0],nums[0],1,1,nums[0]
	for i:=1;i<len(nums);i++{
		if nums[i] > 0{
			curMax = MAX(preMax,1)*nums[i]
			curMin = MIN(preMin,1)*nums[i]
		}else{
			curMax = MIN(preMin,1)*nums[i]
			curMin = MAX(preMax,1)*nums[i]
		}
		preMax = curMax
		preMin = curMin
		if curMax > res{
			res = curMax
		}
	}
	return res
}

func MAX(i,j int) int{
	if i<j{
		return j
	}else{
		return i
	}
}

func MIN(i,j int) int{
	if i<j{
		return i
	}else{
		return j
	}
}

 

1. 线性DP

原文:https://www.cnblogs.com/wsw-seu/p/12738793.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!