我是靠谱客的博主 爱笑悟空,这篇文章主要介绍求最大面积,现在分享给大家,希望可以做个参考。

题目:对非负序列a1,a2,……,an,在数轴上做垂线连接点(i,0)和(i,ai)。选择这样的两条线和x轴可以形成一个容器,我们以面积代表所装的水,求以这种方式构成的容器能装的最大面积。比如选择a2=3,a5=6,则所装的面积为9.

思路分析:
从两端逼近,求最大面积。

代码:

package 华为机试题;
import java.util.LinkedList;
/**
* @author Hutongling
*
* @time:2017年4月24日 下午1:58:21
*/
public class 求容器最大面积 {
static int maxArea(int[] height) {
int water = 0;
int i = 0, j = height.length - 1;
while (i < j) {
int h = height[i] > height[j] ? height[j] : height[i];
water = water > (j - i) * h ? water : (j - i) * h;
while (height[i] <= h && i < j)
i++;
while (height[j] <= h && i < j)
j--;
}
return water;
}
public static void main(String[] args) {
int height[]={1,2,5,3,1,5,3,9};
System.out.print("最大的面积为:" + maxArea(height));
}
}

代码结果:

最大的面积为:25

最后

以上就是爱笑悟空最近收集整理的关于求最大面积的全部内容,更多相关求最大面积内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(114)

评论列表共有 0 条评论

立即
投稿
返回
顶部