add new solutions
This commit is contained in:
parent
9c2c959a9b
commit
9a10695e8c
29 changed files with 1074 additions and 2 deletions
36
solutions/0/q42/solution.go
Normal file
36
solutions/0/q42/solution.go
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
package q42
|
||||
|
||||
func trap(height []int) int {
|
||||
water := 0
|
||||
mid := 0
|
||||
|
||||
// From left
|
||||
maxHeight, stash := 0, 0
|
||||
for i, h := range height {
|
||||
if h >= maxHeight {
|
||||
maxHeight = h
|
||||
water += stash
|
||||
stash = 0
|
||||
mid = i
|
||||
} else {
|
||||
stash += maxHeight - h
|
||||
}
|
||||
}
|
||||
|
||||
// From right
|
||||
maxHeight, stash = 0, 0
|
||||
for i := len(height) - 1; i >= mid; i-- {
|
||||
h := height[i]
|
||||
if h >= maxHeight {
|
||||
maxHeight = h
|
||||
water += stash
|
||||
stash = 0
|
||||
} else {
|
||||
stash += maxHeight - h
|
||||
}
|
||||
}
|
||||
|
||||
return water
|
||||
}
|
||||
|
||||
var _ = trap
|
||||
Loading…
Add table
Add a link
Reference in a new issue