赞
踩
思路:用两个变量标记头和尾的位置,得到一个结果后,从高度最小的一端向中间靠近,只有下一个高度比此点处的高度高才有可能超过当前面积,然后比较得到的结果与先前结果,取较大的结果即可
class Solution { public: int maxArea(vector<int>& height) { if(height.size()==0) return 0; int result=0;//记录结果 int i=0;//左标点 int j=height.size()-1;//右标点 int mid=0; while(i<j) { mid=min(height[i],height[j]); if(mid*(j-i)>result) result=mid*(j-i); if(height[i]<height[j]) while(i<j&&height[i]<=mid) ++i; else while(i<j&&height[j]<=mid) --j; } return result; } };
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。