参考自https://blog.nowcoder.net/n/155d424724d0472e9d534ccc5551b40a?f=comment因为能够容水,必然是处于凹陷处,假设凹陷处为i位置,那么i位置的容水应该是i处左边的最大值,和i处右边的最大值取最小的一个 然后减去arr[i]不能容水的量。所以需要保存每个位置i处左边的最大值,即从左往右保存当前最大值;和i处右边的最大值,即从右往左保存当前最大值;且如果能保存水的时候(min(la[i], ra[i]) - arr[i] > 0),才能算入容量。 class Solution { public: /** *...