思路:
可容纳水的高度由短板确定,面积公式:
S(l,r)=min(h[l],h[r])×(r−l)S(l,r)=min(h[l],h[r])×(r−l)
无论是移动短板或者长板,我们都只关注移动后的新短板会不会变长,而每次移动的木板都只有三种情况,比原短板短,比原短板长,与原短板相等;
-
如向内移动长板,对于新的木板:
1.比原短板短,则短板更短。
2.与原短板相等或者比原短板长,则短板不变。
所以,向内移动长板,一定不能使新短板变长。
-
向内移动短板,对于新的木板:
- 比原长板更长,则短板不变
- 比短板长,且比长板短,则短板变长
- 比原短板短,则短板更短
所以,向内移动短板,短板可能变长
算法流程:
- 每一步计算当前l,r所得到的面积,并更新
- 求l,