add new solutions
This commit is contained in:
parent
1f0aa6d417
commit
efc7e67367
7 changed files with 215 additions and 2 deletions
35
solutions/15/q1594/solution.go
Normal file
35
solutions/15/q1594/solution.go
Normal 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
|
||||
Loading…
Add table
Add a link
Reference in a new issue