一些遇到的有趣的程序题
2015-09-12 16:34
183 查看
package demo; /** * @author JD *程序是计算数组直方图最大矩形面积,直方图每列宽度为1,如{2,7,9,4,1}的最大矩形面积是7*2=14; *思路:从左往右,从a[0]到a[n-1],依次计算能和a[i]组成矩形的最大面积,因为只有大于或者等于a[i]才能和a[i]组成矩形块 *所以分别从a[i]开始,从左扩展计算能和a[i]组成的矩形的块数,再往右计算能和a[i]组成的矩形的块数,把它们相加,乘以a[i], *就是能和a[i]组成矩形的最大面积; */ public class Get_Max_Rect { public static void main(String[] args) { // TODO Auto-generated method stub int[] a={2,1,5,6,2,3}; System.out.println(max(a,a.length)); } private static int max(int[] a, int len) { // TODO Auto-generated method stub int mx=a[0]; int count ; for(int i=0;i<len;i++){ count=0; int j=i; while(j>=0){ //必须必a[i]大,不然矩形凹陷,不能计算以a[i]为宽的矩形面积 if(a[i]<=a[j]){ j--; count++; }else{ break; } } System.out.println(count); j=i+1; while(j<=len-1){ if(a[i]<=a[j]){ j++; count++; }else{ break; } } System.out.println(count); if(mx<a[i]*count){ mx=a[i]*count; } } return mx; } }
相关文章推荐
- 第01章 导言(Introduction)
- C++虚析构函数、纯虚析构函数
- Eclipse的PHP插件PHPEclipse安装和使用
- 鼠标右键点击文件夹 用Unity5打开 项目 实现
- 字符集
- 做自己的软件的Gallery(一)
- 做自己的软件的Gallery(一)
- 一个简单的生成静态文件的例子
- Python中的AttributeError错误的常见原因
- 使用xml来显示获取的mysql数据
- “TI门外汉”网路知识笔记一 OSI参考模型
- 让网页背景图片 固定,不随缩小放大而变化
- rmvb 文件格式解析
- GWXZ摸底考模拟赛
- hdoj1097
- Python安装
- javascript 判断一个点是否在多边形内(向量的使用)
- Android下ListView的学习
- java移位操作符
- HTTP协议-Web基础-1