add new solutions

This commit is contained in:
Yiyang Kang 2026-03-27 11:28:00 +09:00
parent 1f0aa6d417
commit efc7e67367
Signed by: kkyy
SSH key fingerprint: SHA256:lJSbAzC3MvrSORdvIVK6h/3g+rVKJNzM7zq0MgA9WKY
7 changed files with 215 additions and 2 deletions

View file

@ -0,0 +1,35 @@
// Package q1594 implements a solution for https://leetcode.com/problems/maximum-non-negative-product-in-a-matrix/
package q1594
const MOD = 1e9 + 7
func maxProductPath(grid [][]int) int {
buf := make([][2]int, len(grid[0]))
buf[0] = [2]int{grid[0][0], grid[0][0]}
for c := 1; c < len(grid[0]); c++ {
num := grid[0][c]
n1, n2 := num*buf[c-1][0], num*buf[c-1][1]
buf[c] = [2]int{max(n1, n2), min(n1, n2)}
}
for r := 1; r < len(grid); r++ {
num := grid[r][0]
n1, n2 := num*buf[0][0], num*buf[0][1]
buf[0] = [2]int{max(n1, n2), min(n1, n2)}
for c := 1; c < len(grid[0]); c++ {
num := grid[r][c]
n1, n2 := num*buf[c][0], num*buf[c][1]
n3, n4 := num*buf[c-1][0], num*buf[c-1][1]
buf[c] = [2]int{
max(n1, n2, n3, n4),
min(n1, n2, n3, n4),
}
}
}
return max(-1, buf[len(buf)-1][0]%MOD)
}
var _ = maxProductPath