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

电子商务网站建设与管理试卷windows 2008 wordpress

电子商务网站建设与管理试卷,windows 2008 wordpress,理论网,wordpress添加dplayer84.柱状图中最大的矩形 力扣题目链接 给定 n 个非负整数&#xff0c;用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#xff0c;且宽度为 1 。 求在该柱状图中&#xff0c;能够勾勒出来的矩形的最大面积。 1 < heights.length <10^5 0 < heights[i] < 10^…

84.柱状图中最大的矩形

力扣题目链接

给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。

求在该柱状图中,能够勾勒出来的矩形的最大面积。

img

img

  • 1 <= heights.length <=10^5

  • 0 <= heights[i] <= 10^4

  • 暴力解法

class Solution {public int largestRectangleArea(int[] heights) {int res=0;for(int i=0;i<heights.length;i++){int left=i;int right=i;for(;left>=0;left--){if(heights[left]<heights[i]) break;}for(;right<heights.length;right++){if(heights[right]<heights[i]) break;}int w=right-left-1;int h=heights[i];res=Math.max(res,w*h);}return res;}
}
  • 单调栈解法

求左右两边小的, 用单调递减栈

主要就是分析清楚如下三种情况:

  • 情况一:当前遍历的元素heights[i]大于栈顶元素heights[st.top()]的情况
  • 情况二:当前遍历的元素heights[i]等于栈顶元素heights[st.top()]的情况
  • 情况三:当前遍历的元素heights[i]小于栈顶元素heights[st.top()]的情况

头尾要加0 ,如果数组本身就是升序的,例如[2,4,6,8],那么入栈之后 都是单调递减,一直都没有走 情况三 计算结果的哪一步,所以最后输出的就是0了,那么结尾加一个0,就会让栈里的所有元素,走到情况三的逻辑。如图:

img

那么结尾加一个0,就会让栈里的所有元素,走到情况三的逻辑。

开头为什么要加元素0?

如果数组本身是降序的,例如 [8,6,4,2],在 8 入栈后,6 开始与8 进行比较,此时我们得到 mid(8),rigt(6),但是得不到 left。

(mid、left,right 都是对应版本一里的逻辑)

因为 将 8 弹出之后,栈里没有元素了,那么为了避免空栈取值,直接跳过了计算结果的逻辑。

之后又将6 加入栈(此时8已经弹出了),然后 就是 4 与 栈口元素 8 进行比较,周而复始,那么计算的最后结果resutl就是0。 如图所示:

img

所以我们需要在 height数组前后各加一个元素0。

整体代码如下:

class Solution {public int largestRectangleArea(int[] heights) {int res=0;int[] newheights=new int[heights.length+2];System.arraycopy(heights,0,newheights,1,heights.length);newheights[0]=0;newheights[heights.length+1]=0;Deque<Integer> stack=new LinkedList<>();stack.push(0);for(int i=1;i<newheights.length;i++){while(!stack.isEmpty()&&newheights[i]<newheights[stack.peek()]){int mid=stack.peek();stack.pop();int w=i-stack.peek()-1;int h=newheights[mid];res=Math.max(res,w*h);}stack.push(i);}return res;}
}
http://www.yayakq.cn/news/530602/

相关文章:

  • 化妆品网站模板公司网站公司哪家好
  • 汉服网站设计目的视觉上体验的网站
  • 学校网站策划书有什么可以做建筑模型的网站
  • 免费做网站有哪些家上海哪家公司做网站好
  • 企业网站的意义wordpress怎么设置伪静态页面
  • php+ajax网站开发典型实例pdf网络经营范围包括哪些
  • 国税局网站里打印设置如何做做网站的客户需求报告答案
  • 网站显示乱码怎么办啊公众号投票怎么制作
  • 做振动盘的企业网站军事新闻视频在线观看
  • 做海报图片去哪个网站找 知乎做平台网站怎么赚钱
  • oss静态网站托管业务平台低价
  • .net php开发网站开发网页内容有哪些
  • 百度网站置顶怎么做优秀网站分析案例
  • 中山网站建设思公司起名在线生成器
  • wordpress 建站主题中学网站建设书
  • 网站建设登录页面怎么写wordpress默认登陆地址修改
  • 如何用wampp 做网站冒用公司名做网站
  • 丹东手机网站新颖的互联网公司名字
  • 网站文明专栏建设wordpress返回404
  • 深圳做h5网站设计软件开发 上海
  • 长治网站建设龙采科技技术支持延吉最好的网站建设公司
  • 宁波网站制作网站网站建站平台公司
  • 网站项目的介绍类似58的推广平台有哪些平台
  • 网站建设有用吗制作重庆城市的网页
  • 在线教育网站有哪些商场设计理念
  • 云南网站建设哪家公司好南城网站建设多少钱
  • 网站雪花特效网页制作与设计专业
  • 大连企业招聘网站西安网站设计 牛人网络
  • 如何做网站出单网络服务商主要包括哪些方面
  • 重庆企业网站开发服务器网站建设信息推荐