201312-3 最大的矩形

遍历查看每个元素对应的最大矩形,时间复杂度n方,奉上java满分代码

import java.util.HashSet;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int[] numArr = new int[n];
        HashSet<Integer> set = new HashSet<>();
        for (int i = 0; i < n; i++) {
            numArr[i] = scanner.nextInt();
            set.add(numArr[i]);
        }
        scanner.close();

        int maxArea = 0;
        for (int numI : set) {
            int maxCount = 0;
            int count = 0;
            for (int numJ : numArr) {
                if (numJ >= numI) {
                    count++;
                    if (count > maxCount)
                        maxCount = count;
                } else {
                    count = 0;
                }
            }
            int area = numI * maxCount;
            if(area > maxArea){
                maxArea = area;
            }
        }

        System.out.println(maxArea);
    }

}

猜你喜欢

转载自blog.csdn.net/qq_23934649/article/details/84843951
今日推荐