11.盛最多水的容器

leetcode链接:
https://leetcode.cn/problems/container-with-most-water/

方案二:双指针(对撞指针)

算法的相关思想:
https://zhuanlan.zhihu.com/p/71643340
https://blog.csdn.net/lady_killer9/article/details/110246226

对撞指针 – 伪代码:

1
2
3
4
5
6
7
8
9
10
11
12
function fn (list) {
var left = 0;
var right = list.length - 1;

//遍历数组
while (left <= right) {
left++;
// 一些条件判断 和处理
... ...
right--;
}
}

可以正常执行的代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int l_left=0,l_right=(height.length-1),maxarea = 0,temp;
while(l_left < l_right){
temp = (l_right - l_left) * ((height[l_left]<height[l_right]) ? height[l_left]:height[l_right]);

if (temp > maxarea) {
maxarea = temp;
}

if (height[l_left] > height[l_right]){
l_right--;
} else {
l_left++;
}
}
return maxarea;

方案一:暴力枚举

遇到的问题:运行超时,无法正常执行

1
2
3
4
5
6
7
8
9
10
int maxarea = (height[1]<height[0]) ? height[1]:height[0], temp;
for (int i = 0; i < height.length-1; i++) {
for (int j = i+1 ; j < height.length; j++) {
temp = (j - i) * ((height[i]<height[j]) ? height[i]:height[j]);
if (temp > maxarea){
maxarea = temp;
}
}
}
return maxarea;

11.盛最多水的容器
http://yuanql.top/2023/03/24/02_leetcode/11.盛最多水的容器/
作者
Qingli Yuan
发布于
2023年3月24日
许可协议