接雨水题解half

This commit is contained in:
2025-08-08 20:16:08 +08:00
parent ca027e68fd
commit 7de0230b1a

View File

@@ -8,24 +8,26 @@ func main() {
} }
func trap(height []int) int { func trap(height []int) int {
leftMaxlist := make([]int, len(height)+1) leftP := 0
rightMaxlist := make([]int, len(height)+1) rightP := 1
minMax := make([]int, len(height)+1) result := 0
for i := 0; i < len(height)-1; i++ { midres := 0
leftMaxlist[i+1] = max(height[i], leftMaxlist[i]) for {
if leftP > len(height)-1 || rightP > len(height)-1 {
break
}
if height[leftP] > height[rightP] {
midres += height[leftP] - height[rightP]
fmt.Println("result加上:", height[leftP]-height[rightP], "当前左指针:", leftP, "当前右指针:", rightP)
rightP++
} else if height[leftP] <= height[rightP] && midres != 0 {
result += midres
leftP = rightP
rightP = leftP + 1
} else {
leftP++
rightP = leftP + 1
}
} }
for i := len(height) - 1; i >= 0; i-- { return result
rightMaxlist[i] = max(height[i], rightMaxlist[i+1])
}
fmt.Println(leftMaxlist)
fmt.Println(rightMaxlist)
for i := 0; i < len(minMax)-1; i++ {
minMax[i] = min(leftMaxlist[i], rightMaxlist[i])
}
for i := len(minMax) - 1; i >= 0; i-- {
}
return 0
} }