网站建设与维护基础知识,专业的铁岭做网站公司,网站地图怎么样做更利于收录,建筑工程是干嘛的目录 题目描述#xff1a;输入#xff1a;输出#xff1a;代码实现#xff1a; 题目描述#xff1a; 给定一个长度为 n 的整数数组 height 。有 n 条垂线#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线#xff0c;使得它们与 x 轴共同… 目录 题目描述输入输出代码实现 题目描述 给定一个长度为 n 的整数数组 height 。有 n 条垂线第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明你不能倾斜容器。 输入
[1,8,6,2,5,4,8,3,7]输出
49 解释图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下容器能够容纳水表示为蓝色部分的最大值为 49。
代码实现
class Solution {public int maxArea(int[] height) {int low 0;// 左指针int high height.length - 1;// 右指针int maxArea Math.min(height[high], height[low]) * (high - low);// 初始化最大面积// 枚举所有容器情况while (low high) {// 左指针要小于右指针if (height[low] height[high]) {// 左边界更低时左边界加一low;} else {// 反之右边界减一high--;}// 判断最大面积横坐标之差*最短板int area Math.min(height[high], height[low]) * (high - low);if (area maxArea) {// 打擂台出现更大的面积则更新最大面积maxArea area;}}return maxArea;}
}