本文共 1078 字,大约阅读时间需要 3 分钟。
题意:在一个坐标系中,给出若干点,每个点做x轴的垂直线,然后求任何两条线形成的容器中能盛下最多水的情况
int maxArea(int* height, int heightSize) { int i=0, j=heightSize-1, height_tmp = 0, max_tmp =0,width_tmp = 1, max = 0; int flag = 1; while(i < j){ height_tmp = (height[i]>height[j])?height[j]:height[i]; width_tmp = j-i; max_tmp = height_tmp * width_tmp; if (max < max_tmp) { max = max_tmp; } if (height[i] < height[j]) // 因为长方形的宽度j-i已经是最大了,如果i不动,height[i]*任何( j减去一个值 ) 都会小于max, 所以放弃i i++; else j--; } return max;}
转载地址:http://poxkb.baihongyu.com/