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

巴中住房和城乡建设局网站在社保网站上怎么做员工的退费

巴中住房和城乡建设局网站,在社保网站上怎么做员工的退费,无锡网站优化工作室,跨境外贸网84.柱状图中最大的矩形 力扣题目链接 给定 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/274003/

相关文章:

  • 镇江网站建设推广公司给别人做软件的网站
  • 宁波seo优化服务xxx网站建设与优化推广
  • 上门做网站公司哪家好制作一个网站步骤排版
  • 微商建立网站用帝国做的网站
  • 免费搭建手机网站特产网站建设的目的
  • 企业网络营销站点的功能有哪些做网站怎么插音乐循环
  • 做网站实名认证总是失败怎么回事提供手机自适应网站公司
  • 美食网站开发开题报告安徽建筑网
  • 做网站需要多少钱 网络服务北京恒伟网站建设
  • 手机CPA网站建设源码修改手机在线制作图片
  • 做网站的公司 杭州wordpress作者页面显示评论
  • 建设网站怎么判断是电脑还是手机站长工具精品
  • 天津网站建设优选企业深圳龙岗网络推广
  • 做视频网站技术壁垒在哪里网站特色分析图怎么做
  • 网站建设业务员在哪里接单廊坊网站建设开发
  • 四川旅游网站设计论文安康网络公司信息
  • 找人做网站注意哪些西部数码网站管理助手2.0
  • 江苏企业网站建设价格外贸建站与推广如何做 google
  • 电脑路由器做网站服务器怎么对一个产品进行网络营销
  • seo快速排名软件推荐seo全称是什么意思
  • h5企业网站通用源码怎样帮人做网站挣钱
  • 诸暨北京网站制作公司有哪些网站建设公司好发信息网
  • 今科网站建设怎么样户县微网站建设
  • 国外网站 icp备案电子商务网站建设实训室简介
  • 网站的数据库丢失wordpress 用的什么框架
  • 广东智能网站建设配件短剧分销系统开发
  • 重庆简易注销在什么网站做衡水网站建设套餐
  • 如何提供网站建设公司建筑工程项目信息查询
  • 外贸公司需要什么资质网站相册优化
  • 网站树状型结构优化手表网站布局