做题连接
本题分为两种方法:
暴力法:
int maxArea(int* height, int heightSize) { int maxarea=0,s; for(int i=0;i<heightSize;i++) for(int j=i+1;j<heightSize;j++) { s=(height[i]>height[j])?height[j]:height[i]; maxarea=(s*(j-i)>maxarea)?(s*(j-i)):maxarea; } return maxarea; } 分别比较数组中边缘最小,然后面积较大值返回 头尾指针法: int maxArea(int* height, int heightSize) { int maxarea=0,s,i=0,j=heightSize-1; while(i<j){ s=(height[i]>height[j])?height[j]:height[i]; maxarea=(s*(j-i)>maxarea)?(s*(j-i)):maxarea; if(height[i]<height[j]) i++; else j--; } return maxarea; }