Javascript 盛水的容器
我正在讨论关于Geeksforgeks的以下问题 给定n个非负整数a_1,a_2,…,a_n其中 表示坐标(i,a_i)处的点。'垂直线是 绘制成线i的两个端点位于(i,a_i)和(i), 0). 找到两条线,它们与x轴一起构成一个容器,例如 容器中的水最多 程序应返回一个与最大值对应的整数 可容纳的水面积(最大面积而非最大面积 音量听起来很奇怪,但这是我们正在使用的2D平面 简单性) 问题链接: 在这里,他们给出了以下示例并进行了解释Javascript 盛水的容器,javascript,Javascript,我正在讨论关于Geeksforgeks的以下问题 给定n个非负整数a_1,a_2,…,a_n其中 表示坐标(i,a_i)处的点。'垂直线是 绘制成线i的两个端点位于(i,a_i)和(i), 0). 找到两条线,它们与x轴一起构成一个容器,例如 容器中的水最多 程序应返回一个与最大值对应的整数 可容纳的水面积(最大面积而非最大面积 音量听起来很奇怪,但这是我们正在使用的2D平面 简单性) 问题链接: 在这里,他们给出了以下示例并进行了解释 Input : [1, 5, 4, 3] Output :
Input : [1, 5, 4, 3]
Output : 6
Explanation :
5 and 3 are distance 2 apart.
So the size of the base = 2.
Height of container = min(5, 3) = 3.
So total area = 3 * 2 = 6
Input : [3, 1, 2, 4, 5]
Output : 12
Explanation :
5 and 3 are distance 4 apart.
So the size of the base = 4.
Height of container = min(5, 3) = 3.
So total area = 4 * 3 = 12
但我仍然不知道这个问题需要我做什么?例如,为什么在第一个示例中,他们选择了第二个和最后一个元素(5和3),在第二个示例中,他们选择了第一个和最后一个元素?您必须确定输入中的哪两行,在一起时,创建水最多的容器 对于第一个示例,对于
1,5,4,3
,其他一些选项包括:
- 1和5:结果是1的面积(1个间隔*1分钟高度)
- 1和4:结果是2的面积(2个间隔*1分钟高度)
- 1和3:结果是3的面积(3个间隔*1分钟高度)
- 5和4:结果是一个面积为4的区域(1个间隔*4个最小高度)
- 4和3:结果是3的面积(1个间隔*1分钟高度)
- 3和1:结果是1的面积(1个间隔*1分钟高度)
- 3和2:结果是一个面积为4的区域(2个间隔*2分钟高度)
- 3和4:结果是9的面积(3个间隔*3分钟高度)
等。最高的结果是3和5(相隔4;索引0和索引4),其面积为12(3*4)。您是否根据描述在一些纸上画出了示例?如果没有,那么就这么做:这很好地解释了。@Mike'Pomax'Kamerman我无法理解他们是如何比较距离的,比如选择5和3。不,真的,举个例子。在网格上画一条水平线,三步长。垂直线:在水平线的起点1步高。然后在右边的台阶上有一个5步高的台阶。然后在四步高的地方,往右边走一步,最后在水平线的尽头走三步高。有六个可能的“容器”,你可以用它来形成,每个容器都有一个非常明显的宽度,并且能够容纳非常明显数量的1步x 1步矩形。