leetcode刷題11. 盛最多水的容器
做題連接https://leetcode-cn.com/problems/container-with-most-water/submissions/
本題分為兩種方法:
暴力法:
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;
}
leetcode刷題11. 盛最多水的容器