CCF之最大的矩阵(java)
2017-02-15 15:31
211 查看
试题编号: | 201312-3 |
试题名称: | 最大的矩形 |
时间限制: | 1.0s |
内存限制: | 256.0MB |
问题描述: | 问题描述 在横轴上放了n个相邻的矩形,每个矩形的宽度是1,而第i(1 ≤ i ≤ n)个矩形的高度是hi。这n个矩形构成了一个直方图。例如,下图中六个矩形的高度就分别是3, 1, 6, 5, 2, 3。 请找出能放在给定直方图里面积最大的矩形,它的边要与坐标轴平行。对于上面给出的例子,最大矩形如下图所示的阴影部分,面积是10。 输入格式 第一行包含一个整数n,即矩形的数量(1 ≤ n ≤ 1000)。 第二行包含n 个整数h1, h2, … , hn,相邻的数之间由空格分隔。(1 ≤ hi ≤ 10000)。hi是第i个矩形的高度。 输出格式 输出一行,包含一个整数,即给定直方图内的最大矩形的面积。 样例输入 6 3 1 6 5 2 3 样例输出 10 |
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner fin = new Scanner(System.in);
int N = fin.nextInt();
int[] height = new int
;
for (int i = 0; i < N; ++i){
height[i] = fin.nextInt();
}
int result = 0;
for (int i = 0; i < N; i++) {
int width = 1;
for (int j = i - 1; j >= 0; j--) {
if (height[j] < height[i])
break;
width++;
}
for (int j = i + 1; j < N; j++) {
if (height[j] < height[i])
break;
width++;
}
int area = width * height[i];
result = Math.max(result, area);
}
System.out.println(result);
}
}
相关文章推荐
- 腾讯笔试之M*N矩阵 左对角到右对角最大值 java实现
- CCF 201612-1 最大波动 JAVA实现
- 用幂法求矩阵的最大近似特征值 (JAVA)
- CCF之矩阵(java)
- CCF CSP 201609-1 最大波动(Java-100分)
- CCF 201609-1 最大波动java
- JAVA代码—算法基础:最大子矩阵的和(N*N的矩阵)
- 寻找01矩阵中的最大子矩阵--华为OJ机试--java语言版
- ACM Poj1050 To the Max 求矩阵中局部矩形区域和最大值 java版本
- CCF 最大波动 JAVA 201609-1
- CCF-CSP 最大的矩形 201312-3 JAVA
- Java编程数组中最大子矩阵简便解法实现代码
- sas转java(1)截取子矩阵、unique、获取矩阵的行列数、创建特殊矩阵、求矩阵中的最大最小值、横纵合并矩阵、将矩阵转换为0,1形式、转置求逆
- CCF之最大波动(java)
- CCF考试(Java)-最大的矩形
- CCF 历年真题之最大的矩形(_1312_3_LargestRectangle.java)参考答案
- 然后找出全部元素中的最大值和最小值。 用C++做1、从键盘输入3行3列矩阵的元素
- java.sql.SQLException: ORA-01000: 超出打开游标的最大数
- Mysql的最大连接数怎样用java程序测试
- 最大子序列算法的JAVA实现