11. 盛最多水的容器 - 力扣(LeetCode)

看图像接雨水,但其实简单很多

<aside> 💡 哪边矮移哪边,两边等长就都移动

</aside>

本质应该是 相遇指针+分类题 ?分三种情况:

代码

int maxArea(vector<int>& height) {
	int left = 0;
	int right = height.size() - 1;
	
	int ans = std::min(height[left], height[right]) * (right - left);
	while (left < right) {
		if (height[left] < height[right])
			++left;
		else if (height[left] > height[right])
			--right;
		else {
			++left;
			--right;
		}
		ans = std::max(ans, std::min(height[left], height[right]) * (right - left));
	}
	return ans;
}