当前位置: 首页> 文旅> 酒店 > 【LeetCode每日一题】盛最多水的容器

【LeetCode每日一题】盛最多水的容器

时间:2025/7/11 17:43:42来源:https://blog.csdn.net/2301_79728896/article/details/140884947 浏览次数:0次

思路

标签:双指针,贪心

分析:

首先选两条线为容器的两端,盛水的高度取决于高度小的那条线,此时在两条线中间选一条线,有两种情况,如果区间内某条线比两端高度小的那条线还要小,此时宽度和高度都减小,面积必然减小,而如果区间内某条线比两端高度小的那条线要大,此时宽度减小,高度不变,面积仍减小

因此,要移动两端高度小的那条线,面积才可能增大,这就要用到双指针

class Solution {
public:int maxArea(vector<int>& height) {int n=height.size();int ans=-1;int l=0,r=n-1;int area;while(l<r){area=(r-l)*min(height[r],height[l]);ans=max(ans,area);if(height[r]<height[l])r--;else l++;}return ans;}
};

关键字:【LeetCode每日一题】盛最多水的容器

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: