链接:11. 盛最多水的容器 - 力扣(LeetCode)
题目大意:
给定一个长度为 n 的整数数组高度 。
找出其中的两条线,使得它们与 x
轴共同构成的容器可以容纳最多的水。
返回容器可以储存的最大水量。
说明:你不能倾斜容器。
输入:
[1,8,6,2,5,4,8,3,7]
输出:
49
解题思路:
容器的最大容量与底面宽度,和板两边的最小高有关。当固定一根柱子,移动另一根柱子时,底面宽度减小,板两边最小高也会变化,容积可能变大,也可能变小。本题运用双指针,一开始选最外侧两根柱子,如果左侧高度比右侧小,左侧柱子向右移动一格,如果右侧高度比左侧小,右侧柱子向左移动一格,在循环中寻找容积最大值。当左指针遇到右指针,循环结束。
代码