一、题目原型:
给定 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。画 n 条垂直线,使得垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。
二、题目意思剖析:
实质:找最大面积
三、解题思路:
1 | func maxArea(_ height: [Int]) -> Int { |
四、小结
因为如果高度不够,水就会溢出,所以就需要找更矮的那个高度。然后乘以他们之间的x距离,就是面积。通过两个指针l和r,节省了一半的时间。
耗时44
毫秒,超过22.22%
的提交记录,总提交数49
。