【重点!!!】【单调栈】84.柱状图中最大矩形

题目

法1:单调栈[原版]

O(N)+O(N)
必须掌握算法!!!

class Solution {public int largestRectangleArea(int[] heights) {int n = heights.length, res = 0;int[] leftMin = new int[n], rightMin = new int[n];Stack<Integer> stack = new Stack<>();for (int i = 0; i < n; ++i) {while (!stack.isEmpty() && heights[stack.peek()] >= heights[i]) {stack.pop();}leftMin[i] = stack.isEmpty() ? -1 : stack.peek();stack.push(i);}stack.clear();for (int i = n - 1; i >= 0; --i) {while (!stack.isEmpty() && heights[stack.peek()] >= heights[i]) {stack.pop();}rightMin[i] = stack.isEmpty() ? n : stack.peek();stack.push(i);}for (int i = 0; i < n; ++i) {res = Math.max(res, (rightMin[i] - leftMin[i] - 1) * heights[i]);}return res;}
}

法2:单调栈[优化版]

O(N)+O(N)
参考答案
在这里插入图片描述

class Solution {public int largestRectangleArea(int[] heights) {int n = heights.length, res = 0;int[] leftMin = new int[n], rightMin = new int[n];Arrays.fill(rightMin, n); // 一定注意这次需要初始化!!!Stack<Integer> stack = new Stack<>();for (int i = 0; i < n; ++i) {while (!stack.isEmpty() && heights[stack.peek()] >= heights[i]) {rightMin[stack.peek()] = i;stack.pop();}leftMin[i] = stack.isEmpty() ? -1 : stack.peek();stack.push(i);}for (int i = 0; i < n; ++i) {res = Math.max(res, (rightMin[i] - leftMin[i] - 1) * heights[i]);}return res;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/497380.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android support library github,Android Support Library 之 夜间模式

原标题&#xff1a;Android Support Library 之 夜间模式前言夜间模式实现方式&#xff1a;1、通过切换theme来实现夜间模式。优点&#xff1a;可以匹配多套主题&#xff0c;并不局限于黑白模式缺点&#xff1a;需要大量定义主题详见博客&#xff1a;http://wuxiaolong.me/2015…

类脑信息处理研究取得进展

来源&#xff1a;AAAI2018概要&#xff1a;近期&#xff0c;中国科学院自动化研究所类脑智能研究中心类脑信息处理&#xff08;BRAVE&#xff09;研究组&#xff0c;在研究员张兆翔的带领下&#xff0c;在借鉴生物神经结构、认知机制与学习特性的神经网络建模与类人学习研究中取…

今天下午爽了一把!

呵呵&#xff0c;很久没这么爽爽地看电影了&#xff0c;一个下午居然连续看了三部电影&#xff01;看到人不想看为止&#xff0c;实在是很过瘾的一个下午啊&#xff01;只是是翘课看的电影&#xff0c;感觉有点不太好&#xff0c;最近真是越来越堕落了。看来要好好克制一下自己…

展望:共融机器人的基础理论与关键技术

来源&#xff1a;《国家科学评论》概要&#xff1a;自1959年工业机器人诞生以来&#xff0c;机器人在机械制造、国防安全、健康服务、科考与医疗等方面发挥出越来越重要的作用。自1959年工业机器人诞生以来&#xff0c;机器人在机械制造、国防安全、健康服务、科考与医疗等方面…

哈萨比斯导师:人工智能媲美人类或需两百年,神经学是条出路

来源&#xff1a;澎湃新闻概要&#xff1a;从围棋到智能驾驶&#xff0c;深度学习缔造了眼下这一波人工智能热潮。在深度学习最热的两大关键词“AlphaGo”和“自动驾驶”&#xff0c;托马索波吉奥&#xff08;Tomaso Poggio&#xff09;都有声名卓著的学生&#xff0c;分别是De…

独家对话英伟达首席科学家:解码AI芯片战局

来源&#xff1a;智东西概要&#xff1a;独家对话Bill Dally博士&#xff0c;深度解读四大AI热点话题。从2017年1月底以来&#xff0c;英伟达的股价又从108美元一路飙升至240多美元&#xff0c;翻了一倍有多。而英伟达股价一飞冲天的背后&#xff0c;正是人工智能技术不断兴盛崛…

[翻译]2005年软件业界推出新产品非官方计划

虽然预测未来的最好方法就是发明(The best way to predict the future is to invent it. -- A. Kay)&#xff0c;但是对于我等现在还没开始发明或者还没有能力发明的人来说&#xff0c;不妨还是看看2005年会软件业界会推出点什么软件&#xff0c;想象一下程序员的生活会不会在2…

Replace Method with Method Object(以函数对象取代函数)

在一个大型函数中&#xff0c;由于局部变量的使用导致无法采用Extract Method class Order...double price() {double primaryBasePrice;double secondaryBasePrice;double teriaryBasePrice;// long computation.....} } 重构&#xff1a;将这个函数放进一个单独对象中&…

2018-2020年中国服务机器人行业深度研究报告

来源&#xff1a;机器人大讲堂概要&#xff1a;目前世界上至少有48个国家在发展机器人&#xff0c;其中25个国家已涉足服务机器人开发。一、报告编写背景和特点北京立德融创智能机器人技术研究院&#xff08;简称“立德研究院”&#xff09;通过对各机器人项目的实施以及自身发…

密歇根大学联合谷歌大脑提出,通过「推断语义布局」实现「文本到图像合成」

原文来源&#xff1a;arXiv作者&#xff1a;Seunghoon Hong、Dingdong Yang、Jongwook Choi、Honglak Lee「雷克世界」编译&#xff1a;嗯~阿童木呀我们通过推断语义布局&#xff08;semantic layout&#xff09;提出了一种新的文本到图像合成&#xff08;text-to-image synthe…

华为5g汽车鸿蒙,网传华为携手极狐造车新图片,搭载5G天线+鸿蒙OS!

【太平洋汽车网 石家庄车市点评频道】(4月6日联合官宣海报)4月7日&#xff0c;继此前华为和极狐联合官宣“上海见”之后&#xff0c;网上再次流传第二波海报&#xff0c;对比第一天的“初次见面”&#xff0c;这一次的内容无疑更加“王炸”。除了文字信息的“自动驾驶新标杆”&…

智能工厂4.0:数字世界和物理世界的融合【附下载】

来源&#xff1a;专知概要&#xff1a;自动化与控制发展至今&#xff0c;智能工厂逐渐获得关注&#xff0c;并成为制造企业追求的目标。自动化与控制发展至今&#xff0c;智能工厂逐渐获得关注&#xff0c;并成为制造企业追求的目标。何为智能工厂&#xff1f;它应该是一个柔性…

Hide Delegate(隐藏“委托关系”)

通过一个委托类来调用另一个对象 重构&#xff1a;在服务类上建立客户所需的所有函数&#xff0c;用以隐藏委托关系。

中科院自动化所介绍深度强化学习进展:从AlphaGo到AlphaGo Zero

来源&#xff1a;德先生概要&#xff1a;2016年初&#xff0c;AlphaGo战胜李世石成为人工智能的里程碑事件。其核心技术深度强化学习受到人们的广泛关注和研究&#xff0c;取得了丰硕的理论和应用成果。深度强化学习进展: 从AlphaGo到AlphaGo Zero唐振韬, 邵坤, 赵冬斌 , 朱圆…

html select 文字居中显示图片,html原生select改造箭头及文字左右居中的一种办法...

使用过原生select做网页开发的人&#xff0c;一定会对select的两个问题痛心疾首&#xff0c;一是箭头没办法使用css改造&#xff0c;二是显示文字没办法左右居中。首先&#xff0c;如果你有足够时间的话&#xff0c;请改用jquerymobile。jquerymobile提供了移动端非常强大的各种…

2018年,这15个领域将会呈现指数级变化

来源&#xff1a;36氪概要&#xff1a;很多趋势将会在2018年继续下去&#xff0c;尤其是呈现指数级增长的多技术融合。很多趋势将会在2018年继续下去&#xff0c;尤其是呈现指数级增长的多技术融合。气候变化依然是一个最紧迫的问题&#xff0c;尤其当我们通过碳预算来解决问题…

中文WAP浏览器WapDisplayer V1.5发布

中文WAP浏览器WapDisplayer V1.5发布 中国被爱可以在线于2005-9-26发布了中文WAP浏览器WapDisplayer V1.5&#xff0c;欢迎大家下载使用。程序简介&#xff1a;WapDisplayer V1.5是一款利用M3Gate控件开发的中文WAP浏览器&#xff0c;除了保留原英文版M3Gate Version 1.2 beta的…

《自然》杂志:超导突触处理信息能力超人脑

来源&#xff1a;科技日报概要&#xff1a;据英国《自然》杂志网站近日报道&#xff0c;美国科学家研制出一款模拟人脑神经中枢处理过程的超导突触&#xff0c;其信息处理速度比人脑更快&#xff0c;而且更高效。据英国《自然》杂志网站近日报道&#xff0c;美国科学家研制出一…

世界首批智能音箱AI IQ测试报告,小米、京东和阿里初步PK

一、小米、京东和阿里智能音箱测试结果&#xff1a;二、测试说明&#xff1a;1.对智能产品进行智商测试&#xff0c;是一项没有先例的科学实验和研究&#xff0c;因此研究会处于不断修正和发展的过程&#xff0c;研究团队并不认为这个测试结果是完全成熟和客观的。希望通过测试…