当前位置: 首页 > news >正文

衢州网站推广/上海职业技能培训机构一览表

衢州网站推广,上海职业技能培训机构一览表,有关电子商务网站建设与维护的书籍,设计加盟题目描述 给出n个数字,代表直方图的条高,直方图每一条的宽度为1,请计算直方图中最大矩形的面积 上图是每条宽度为1, 高度 [2,1,5,6,2,3].的直方图 图中的阴影部分是该直方图中面积最大的矩形,面积为10个单位 例如: 给…

题目描述

给出n个数字,代表直方图的条高,直方图每一条的宽度为1,请计算直方图中最大矩形的面积

上图是每条宽度为1, 高度 =[2,1,5,6,2,3].的直方图

图中的阴影部分是该直方图中面积最大的矩形,面积为10个单位

例如:
给出的高度 =[2,1,5,6,2,3],
返回10.

 

基本思路:

常规的思路为   N平方级别,即暴力搜索法

贪心思路:对于一个给定的高度  height 从其左右两边不断延伸(延伸的条件为两边的值比当前的大)

这样确保一个乘数  minHeight 不会减小

 

栈思路:

每当遇到一个新高度,查看是否比栈顶的大,如果更大,那么入栈(确保栈中为升序)

如果,比栈顶的更小,那么不断退栈,直到比栈顶的小,在退栈过程中,计算每个高度对应矩形的面积

由于栈为升序,所以每退到一个高度时,该高度比之前退出栈的元素小,因为直接 count*height_now

退光所有比当前元素大的元素后,相应的压入同等数量的当前元素(短板效应) 最后存入当前元素

 

 int largestRectangleArea(vector<int>& height){stack<int> h_stack;int size=height.size();if(size==0)return 0;//开始遍历每一个高度int res=0;for(int i=0;i<size;i++){//如果新来的元素 更高,那么入队列因为不会降低之前的高度if(h_stack.empty() || height[i]>=h_stack.top())h_stack.push(height[i]);else  //如果更低  那么退栈直到比当前的值小  {int count=0;while(!h_stack.empty() && height[i]<h_stack.top()){count++;//计算退栈途中 块的最大矩形,//由于栈中始终保持升序   那么高度始终为topres=max(res,count*h_stack.top());h_stack.pop();}//退出去的元素采用当前的值填充 因为当前的值更小while(count){h_stack.push(height[i]);count--;}h_stack.push(height[i]);//最后自身入栈//仍然保持栈中 为 升序}}//循环结束 栈中仍然有元素(如一直升序)int count=0;while(!h_stack.empty()){count++;//计算退栈途中 块的最大矩形,//由于栈中始终保持升序   那么高度始终为topres=max(res,count*h_stack.top());h_stack.pop();}return res;}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

http://www.lbrq.cn/news/1049995.html

相关文章:

  • java 网站开发 教程/码迷seo
  • 我的世界大橙子做皮肤的网站/网络营销的新特点
  • 全景网站开发多少钱/做销售记住这十句口诀
  • 因网站开发需要/品牌策划包括哪几个方面
  • 贵阳市做网站的公司/百度怎么联系客服
  • 南通做网站推广的公司/seo也成搜索引擎优化
  • 为什么选择做游戏网站/站长之家
  • 代做毕设哪个网站靠谱/网络舆情分析报告范文
  • 网站制作预付款会计分录/免费顶级域名注册
  • 在线做ps是什么网站/上海优化seo排名
  • 容桂低价网站建设/百度搜索app下载
  • 白云区建网站/seo策略
  • wordpress 美食主题/百度搜索优化建议
  • 网站开发需要哪些工程师/百度广告投放价格表
  • 自己做黑彩网站/广告营销方式有哪几种
  • 用竹片做的网站/营销模式和营销策略
  • 电商网站管理系统模板下载/徐州做网站的公司
  • 做网站需要哪些东西和步骤/怎样有效的做网上宣传
  • 筑巢网站建设/全网营销是什么
  • 签约做网站模板/百度登录首页
  • 用pc做网站服务器为什么不如云主机/网站推广如何引流
  • 合肥网络公司网站建设/兰州seo快速优化报价
  • 柳州建设厅官方网站/搜狗搜索旧版本
  • 网站空间每年继费到哪交/免费招聘信息发布平台
  • adobe专门做网站的软件/爱战网关键词挖掘
  • 怎么做套板网站/品牌推广活动有哪些
  • sublime做网站/aso优化技巧大aso技巧
  • 网站开发网站制作/b站大全永不收费2023入口在哪
  • 小说网站建设方案书ppt/网站建设维护
  • 广州网站开发设计公司/核心关键词举例
  • ECharts 的理解和简单应用笔记
  • Slab 算法浅析
  • Python中的Lambda函数详解
  • 在nodejs中使用Java方法
  • java -jar xxx.jar 提示xxx.jar中没有主清单属性报错解决方案
  • Kotlin反射详解