package main func maxWater( arr []int ) int64 { // write code here // 使用双指针分别标记当前左右侧木板的高度 // 如果左侧木板小于右侧木板,那么对应桶的容量不会超过左侧木板高度 n, ans := len(arr), 0 left, right, leftMax, rightMax := 0, n-1, arr[0], arr[n-1] for left < right { if leftMax < rightMax { ans += leftMax - arr[left] left++ leftMax = max(leftMax, arr[left]) } else { ans += rightMax - arr[right] right-- rightMax = max(rightMax, arr[right]) } } return int64(ans) } func max(a, b int) int { if a < b { return b }; return a } func min(a, b int) int { if a < b { return a }; return b }