init
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
package top100liked
|
||||
|
||||
import (
|
||||
"testing"
|
||||
)
|
||||
|
||||
// https://leetcode.cn/problems/trapping-rain-water/?envType=study-plan-v2&envId=top-100-liked
|
||||
|
||||
func trap(height []int) (ans int) {
|
||||
n := len(height)
|
||||
if n == 0 {
|
||||
return
|
||||
}
|
||||
|
||||
leftMax := make([]int, n)
|
||||
leftMax[0] = height[0]
|
||||
for i := 1; i < n; i++ {
|
||||
leftMax[i] = max(leftMax[i-1], height[i])
|
||||
}
|
||||
|
||||
rightMax := make([]int, n)
|
||||
rightMax[n-1] = height[n-1]
|
||||
for i := n - 2; i >= 0; i-- {
|
||||
rightMax[i] = max(rightMax[i+1], height[i])
|
||||
}
|
||||
|
||||
for i, h := range height {
|
||||
ans += min(leftMax[i], rightMax[i]) - h
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func TestS7(t *testing.T) {
|
||||
println(trap([]int{0, 1, 0, 2, 1, 0, 1, 3, 2, 1, 2, 1}))
|
||||
// {4,2,0,3,2,5}
|
||||
}
|
||||
Reference in New Issue
Block a user