我是靠谱客的博主 爱笑悟空,最近开发中收集的这篇文章主要介绍求最大面积,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

题目:对非负序列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

最后

以上就是爱笑悟空为你收集整理的求最大面积的全部内容,希望文章能够帮你解决求最大面积所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部