1 Star 0 Fork 0

catyMap/AlgorithmNote

Create your Gitee Account
Explore and code with more than 13.5 million developers,Free private repositories !:)
Sign up
文件
Clone or Download
maxProduct.go 711 Bytes
Copy Edit Raw Blame History
dogemap authored 2021-05-06 23:09 +08:00 . 添加动态规划等题目
package main
import (
"fmt"
"math"
)
// 152. 乘积最大子数组
func maxProduct(nums []int) int {
// 因为负数的存在使得有负负得正的情况,所以分别维护两个dp数组
n, res := len(nums), math.MinInt32
maxDp, minDp := make([]int, n+1, n+1), make([]int, n+1, n+1)
maxDp[0], minDp[0] = 1, 1
for i := 0 ; i < n ; i++ {
v := nums[i]
maxDp[i+1] = max(maxDp[i] * v , max(v , minDp[i] * v))
minDp[i+1] = min(minDp[i] * v , min(v , maxDp[i] * v))
res = max(res,maxDp[i+1])
}
return res
}
func max(a, b int) int {
if a > b {
return a
}
return b
}
func min(a, b int) int {
if a < b {
return a
}
return b
}
func main() {
fmt.Println(maxProduct([]int{-2,0,-1}))
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/dogemap/algorithm-note.git
git@gitee.com:dogemap/algorithm-note.git
dogemap
algorithm-note
AlgorithmNote
dc486f96f6c1

Search