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

怎样找到免费的黄页网站怎么开网站详细步骤

怎样找到免费的黄页网站,怎么开网站详细步骤,免费字体设计图片,做汽车商城网站刷题 84.柱状图中最大的矩形 题目链接 | 文章讲解 | 视频讲解 题目&#xff1a;给定 n 个非负整数&#xff0c;用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#xff0c;且宽度为 1 。 求在该柱状图中&#xff0c;能够勾勒出来的矩形的最大面积。 1 < heights.len…

刷题

84.柱状图中最大的矩形

题目链接 | 文章讲解 | 视频讲解

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

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

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

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

思路及实现

42. 接雨水 是找每个柱子左右两边第一个大于该柱子高度的柱子,而本题是找每个柱子左右两边第一个小于该柱子的柱子。

这里就涉及到了单调栈很重要的性质,就是单调栈里的顺序,是从小到大还是从大到小

在题解42. 接雨水中我讲解了接雨水的单调栈从栈头(元素从栈头弹出)到栈底的顺序应该是从小到大的顺序。

那么因为本题是要找每个柱子左右两边第一个小于该柱子的柱子,所以从栈头(元素从栈头弹出)到栈底的顺序应该是从大到小的顺序!

我来举一个例子,如图:

只有栈里从大到小的顺序,才能保证栈顶元素找到左右两边第一个小于栈顶元素的柱子。

所以本题单调栈的顺序正好与接雨水反过来。

此时大家应该可以发现其实就是栈顶和栈顶的下一个元素以及要入栈的三个元素组成了我们要求最大面积的高度和宽度

理解这一点,对单调栈就掌握的比较到位了。

除了栈内元素顺序和接雨水不同,剩下的逻辑就都差不多了,在题解42. 接雨水 我已经对单调栈的各个方面做了详细讲解,这里就不赘述了。

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

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

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

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

代码如下:

class Solution {int largestRectangleArea(int[] heights) {Stack<Integer> st = new Stack<Integer>();// 数组扩容,在头和尾各加入一个元素int [] newHeights = new int[heights.length + 2];newHeights[0] = 0;newHeights[newHeights.length - 1] = 0;for (int index = 0; index < heights.length; index++){newHeights[index + 1] = heights[index];}heights = newHeights;st.push(0);int result = 0;// 第一个元素已经入栈,从下标1开始for (int i = 1; i < heights.length; i++) {// 注意heights[i] 是和heights[st.top()] 比较 ,st.top()是下标if (heights[i] > heights[st.peek()]) {st.push(i);} else if (heights[i] == heights[st.peek()]) {st.pop(); // 这个可以加,可以不加,效果一样,思路不同st.push(i);} else {while (heights[i] < heights[st.peek()]) { // 注意是whileint mid = st.peek();st.pop();int left = st.peek();int right = i;int w = right - left - 1;int h = heights[mid];result = Math.max(result, w * h);}st.push(i);}}return result;}
}
http://www.dinnco.com/news/87272.html

相关文章:

  • 网站开发运营公司绩效提成方案在运营中seo是什么意思
  • 国外网站排名前十郑州seo优化外包顾问
  • 怎么做一键添加信任网站做外贸怎么推广
  • dw制作asp网站模板下载怎么做seo网站关键词优化
  • 杭州定制网站长沙网络推广哪家
  • 家居网站建设效果三亚网络推广
  • 商标设计网课厉害的seo顾问
  • html5期末大作业个人网站制作做seo用哪种建站程序最好
  • 做网站排名优化是怎么回事嘉峪关seo
  • 百度网站建设是什么意思百度关键词推广教程
  • 公众号平台网站开发引擎优化
  • 网站上做皮肤测试广告公司网上接单平台
  • 网站负责人信息表百度收录入口在哪里查询
  • 班级网站怎么做ppt模板精准营销方式有哪些
  • ie浏览器哪个做网站稳定免费网站注册com
  • 网站如何做公安部备案南京seo整站优化技术
  • 比较好的网站开发教学网站搜索引擎优化的目的是
  • 做网站分流百度商家平台客服电话
  • 网站的建设服务最佳搜索引擎磁力
  • 网站公司怎么做运营网站如何推广出去
  • 国内自适应网站济宁seo公司
  • 类qq留言网站建设成品短视频app下载有哪些软件
  • 眉山市住房和城乡建设局网站站长之家的seo综合查询工具
  • 常州网站外包营销网站建设哪家快
  • 安徽旅游集团网站建设微信社群营销推广方案
  • 自己的电脑做网站服务器 买的服务器 速度网络黄页推广软件哪个好
  • 腾宁网络做网站互联网企业营销策略
  • 网站建设总结心得北京网站建设运营
  • 大连网站建设优化自媒体引流推广
  • 网站开发知识视频教程云seo关键词排名优化软件