力扣最大面积盛水最多的容器
给定
n
个非负整数
a1,
a2,
...,
an
,其中每个代表坐标
(i,
ai)
处的一个点。
绘制
n
条垂直线,使得线
i
的两个端点位于
(i,
ai)
和
(i,
0)。
找出两条线,它们与
x
轴一起形成一个容器,使容器包含最多的水。
注意:您不能倾斜容器,并且
n
至少为
2。
上述垂直线由数组[1,8,6,2,5,4,8,3,7]表示。
在这种情况下,容器可以容纳的最大水面积(蓝色部分)为
49。
这是一个美丽的问题,展示了如何使用双指针方法获得更好的运行时
实现
1:O(n^2)
class
Solution
{
public
int
maxArea
(
int
[]
height
)
{
if
(height
==
null
||
height
.
length
==
0
)
return
0
;
int
mostWater
=
Integer
.
MIN_VALUE
;
for
(
int
i
=
0
;
i
<
height
.
length
-
1
;
i
++
)
{
for
(
int
j
=
i
+
1
;
j
<
2021-07-08 09:06:27
11KB
系统开源
1