给定一个长度为 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。
输入:
height = [1,1]
输出:
1
https://leetcode.cn/problems/container-with-most-water/description/
impl Solution {
pub fn max_area(height: Vec<i32>) -> i32 {
let mut maxArea = 0;
let mut l = 0;
let mut r = height.len() - 1;
while l < r {
let mut area;
if height[l] < height[r] {
area = (r - l) as i32 * height[l];
l += 1;
} else {
area = (r - l) as i32 * height[r];
r -= 1;
}
maxArea = maxArea.max(area);
}
return maxArea;
}
}
func maxArea(height []int) int {
maxArea := 0
l := 0
r := len(height) - 1
for l < r {
var area int
if height[l] < height[r] {
area = (r - l) * height[l]
l++
} else {
area = (r - l) * height[r]
r--
}
if area > maxArea {
maxArea = area
}
}
return maxArea
}
class Solution {
public:
int maxArea(vector<int>& height) {
int maxArea = 0;
int l = 0, r = height.size() - 1;
while (l < r) {
int area;
if (height[l] < height[r]) {
area = (r - l) * height[l++];
} else {
area = (r - l) * height[r--];
}
maxArea = max(maxArea, area);
}
return maxArea;
}
};
class Solution {
public int maxArea(int[] height) {
int maxArea = 0;
int l = 0, r = height.length - 1;
while (l < r) {
int area;
if (height[l] < height[r]) {
area = (r - l) * height[l++];
} else {
area = (r - l) * height[r--];
}
maxArea = Math.max(maxArea, area);
}
return maxArea;
}
}
function maxArea(height: number[]): number {
let maxArea = 0;
let l = 0, r = height.length - 1;
while (l < r) {
let area;
if (height[l] < height[r]) {
area = (r - l) * height[l++];
} else {
area = (r - l) * height[r--];
}
maxArea = Math.max(maxArea, area);
}
return maxArea;
};
class Solution:
def maxArea(self, height: List[int]) -> int:
l, r = 0, len(height) - 1
ans = 0
while l < r:
if height[l] < height[r]:
area = (r - l) * height[l]
l += 1
else:
area = (r - l) * height[r]
r -= 1
ans = max(ans, area)
return ans
非常感谢你阅读本文~
欢迎【点赞】【收藏】【评论】~
放弃不难,但坚持一定很酷~
希望我们大家都能每天进步一点点~
本文由 二当家的白帽子:https://le-yi.blog.csdn.net/ 博客原创~