题目链接:
https://leetcode.cn/problems/container-with-most-water/
一. 题目描述
二. 解题思路
两指针相向而行,只需遍历一遍数组就能找出最大容积,因此时间复杂度是O(N)。边遍历边更新最大值。
三. 代码实现
class Solution { public: int maxArea(vector<int>& height) { int left = 0, right = height.size()-1; int maxarea = 0; while(left < right) { // 更新最大值 int area = min(height[left], height[right])*(right - left); if(maxarea < area) maxarea = area; // 移动指向的元素小的指针 if(height[left] < height[right]) left++; else right--; } return maxarea; } };