Given n non-negative integers $a_1, a_2, …, a_n$ , where each represents a point at coordinate $(i, a_i)$. n vertical lines are drawn such that the two endpoints of line i is at $(i, a_i)$ and $(i, 0)$. Find two lines, which together with x-axis forms a container, such that the container contains the most water.
Note: You may not slant the container and n is at least 2.
Example 1:
1 |
|
Related Topics: Array
、Two Pointers
解題邏輯與實作
給定一組長短不一的隔板,並指定其放置位置,從中挑其中的兩塊板,使得板子之間能裝最多的水。
這種題目第一個想法是,使用兩個指針由外向內依序挑選隔板,由於在計算面積時,高 h 的值會取決於兩塊隔板中較矮的一塊。因此當由外相內移動時,因為寬 w 縮短,會移動較短的隔板期望能獲取較高的 h 值,如此才有可能得到較大的容積。
1 |
|