這題要求計算一個由非負整數構成的陣列中,根據每個數字所代表的牆高度,能夠存放多少水。每個數字代表一個牆,高度代表柱子的高度,且每個柱子的寬度都是1。接水的量取決於左右兩側的最高牆,若兩側的牆比當前柱子高,那麼水就會被擋在這些柱子之間。具體來說,在每個柱子上,水的量是由該柱子左右兩側最高的柱子的最低高度來決定的,若這個最低高度減去當前柱子的高度為正數,那麼這個值就是可以存放的水量。解題方法使用了兩個陣列來記錄每個位置左側和右側的最高柱子高度。首先,我們從左到右遍歷陣列,填充 max_left 陣列,該陣列記錄到每個位置為止,左側的最大高度。接著,我們從右到左遍歷陣列,填充 max_right 陣列,該陣列記錄從每個位置到陣列末尾的最大高度。這樣,每個位置的水量就可以通過計算左側和右側最大高度的最小值,並減去當前柱子的高度來得到。最終,我們將所有位置的水量加總,即為能夠存放的總水量