最大建筑面积(模拟)

现给出一行n个自然数,代表链接建筑的高度,其中高度为0的是地平线,不为零的是建筑,连续的一段相同非零值代表是同一个建筑。现在给这些建筑拍一张照片,输出在这张图片里面积最大的建筑的面积。每个自然数代表宽度1。

输入描述:

第一行输入一个整数n
第二行输入n个整数,代表建筑的高度或地平线hi
1≤n≤1000,0≤hi​≤1000

输出描述:

输出图片里最大面积建筑的面积

示例1

输入

9
0 0 100 100 100 0 200 200 0

输出

400

备注:

1≤n≤1000,0≤hi​≤1000

来源:

牛客竞赛:“可达鸭编程杯”山东大学程序设计精英挑战赛 远航组B题

AC代码:

#include<iostream>
#include<cmath>
using namespace std;
int h[1010];
int main(){
freopen("in.in" ,"r",stdin); //标准输入
freopen("out.out","w",stdout); //标准输出
int n;
int res = 0;
int maxx = 0; //记录最大的结果
cin >> n;
//读入
for(int i = 0 ; i < n ; i ++) cin >> h[i];
res = h[0]; //初始res的值
for(int i = 1; i < n ; i ++){ //从h[1]开始遍历
if(h[i] == h[i - 1]) res += h[i]; //判断是否连续并且相同
else{
maxx = max(maxx , res); //不连续时,更新结果
res = h[i]; //不连续,更新res开始的位置
}
}
maxx = max(maxx , res); //最后判断
cout << maxx << endl; //输出结果
return 0;
}
posted @   xiao王~  阅读(52)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示