【力扣】11. 盛最多水的容器

简介: 【力扣】11. 盛最多水的容器

11. 盛最多水的容器

题目描述

给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0)(i, height[i])

找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。

返回容器可以储存的最大水量。

说明:你不能倾斜容器。

示例 1:

输入:[1,8,6,2,5,4,8,3,7]

输出:49

解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。

示例 2:

输入:height = [1,1]

输出:1

提示:

  • n == height.length
  • 2 <= n <= 105
  • 0 <= height[i] <= 104

解题方法

  • C 双指针
int mymax(int a, int b) {
    if (a > b)
        return a;
    else
        return b;
}
int mymin(int a, int b) {
    if (a > b)
        return b;
    else
        return a;
}
int maxArea(int* height, int heightSize) {
    int left = 0, right = heightSize - 1; // 定义左、右两个指针
    int s = 0;
    while (left < right) {
        int temp = (right - left) * mymin(height[left], height[right]);
        s = mymax(s, temp); // 保存最大面积
        if (height[left] < height[right]) {
            left++; // 移动矮的面积可能会变大,但移动高的面积一定会减小
        } else {
            right--;
        }
    }
    return s;
}



相关文章
|
21天前
|
存储 容器
LeetCode刷题---11. 盛最多水的容器(双指针-对撞指针)
LeetCode刷题---11. 盛最多水的容器(双指针-对撞指针)
|
8月前
|
算法 容器
【算法专题突破】双指针 - 盛最多水的容器(4)
【算法专题突破】双指针 - 盛最多水的容器(4)
21 0
|
8月前
|
算法 测试技术 容器
【算法挨揍日记】day02——双指针算法_快乐数、盛最多水的容器
题目: 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为:
39 0
|
13天前
|
算法 容器
【优选算法】—Leetcode—11—— 盛最多水的容器
【优选算法】—Leetcode—11—— 盛最多水的容器
|
15天前
|
容器
11. 盛最多水的容器
11. 盛最多水的容器
19 1
|
21天前
|
容器
leetcode代码记录(盛最多水的容器
leetcode代码记录(盛最多水的容器
12 1
|
21天前
|
容器
11.盛最多水的容器
11.盛最多水的容器
14 0
|
21天前
|
容器
LeetCode题:11. 盛最多水的容器
LeetCode题:11. 盛最多水的容器
17 0
|
21天前
|
Python 容器 人工智能
Python每日一练(20230402) 对称二叉树、全排列、盛最多水的容器
Python每日一练(20230402) 对称二叉树、全排列、盛最多水的容器
29 0
Python每日一练(20230402) 对称二叉树、全排列、盛最多水的容器
|
21天前
|
人工智能 容器
leetcode-11:盛最多水的容器
leetcode-11:盛最多水的容器
30 0