【上海校区】找出一组柱状图中的最大矩形面积

python 未结 0 230
什么叫网站优化
什么叫网站优化 2021-07-05 15:44
悬赏:99
方法:分别得到小每个柱子的高度为高的最大面积,然后选取最大的那个。在分析过程中不必考虑单个柱子在整个柱形图里的最大面积,因为这个最大面积如果 不是以它为高的矩形,那必然是以其它柱子高度为高的矩形,所以只需要求出以每个柱子为最高的矩形面积,再比较即可。

import java.util.Scanner;

public class Main {

    public static void fun(int[] lens) {
        if (lens == null || lens.length == 0) {
            return;
        }
        int MAX_AREA = 0;
        for (int i = 0; i < lens.length; i++) {
            int maxArea = maxArea(i, lens);
            if(maxArea>MAX_AREA){
                MAX_AREA = maxArea;
            }
        }
        System.out.println(MAX_AREA);
    }

    public static int maxArea(int index, int[] lens) {
        int left = index;
        int right = index;
        int maxArea = 0;
        for (int i = index-1; i >= 0; i--) {
            if (lens[index] > lens) {
                break;
            }
            left--;
        }
        for (int j = index+1; j < lens.length; j++) {
            if (lens[index] > lens[j]) {
                break;
            }
            right++;
        }
        maxArea = (right - left + 1) * lens[index];
        return maxArea;

    }

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner input = new Scanner(System.in);
        while(input.hasNext()){
            int n = input.nextInt();
            int[] test = new int[n];
            for(int i=0; i<n; i++){
                test = input.nextInt();
            }
            fun(test);
        }

    }

}


---------------------
作者:另一个我竟然存在
来源:CSDN
原文:https://blog.csdn.net/qq_24034545/article/details/82527639
版权声明:本文为博主原创文章,转载请附上博文链接!

相关标签:
回答
  • 消灭零回复
提交回复