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

医院网站 功能深圳企业官网网站建设

医院网站 功能,深圳企业官网网站建设,163邮箱企业邮箱,宁波建设工程学校招生简章84. 柱状图中最大的矩形 正文 题目如下 给定 n 个非负整数#xff0c;用来表示柱状图中各个柱子的高度。每个柱子彼此相邻#xff0c;且宽度为 1 。 求在该柱状图中#xff0c;能够勾勒出来的矩形的最大面积。 这道题暴力很简单#xff0c;但是时间复杂度是O(N^2)#xf…84. 柱状图中最大的矩形 正文 题目如下 给定 n 个非负整数用来表示柱状图中各个柱子的高度。每个柱子彼此相邻且宽度为 1 。 求在该柱状图中能够勾勒出来的矩形的最大面积。 这道题暴力很简单但是时间复杂度是O(N^2)在这里我们不予考虑我在这里主要介绍一下单调栈的做法。 单调栈主要的思路就是将遍历到的元素下标压入栈中如果当前遍历的元素小于栈顶元素就没有遵循单调的原则需要先把栈中大于当前遍历到的数字的元素弹出再把当前遍历的元素压入栈中在这个过程中我们还需要重新计算最大的矩形面积。 如何计算 首先我们需要明确我们的栈是存储的下标通过下标的差值我们可以计算出宽度而且栈中元素是保持着单调递增的趋势所以我们每次弹出的下标对应的数值都可以作为我们的矩形的高这样便可以计算出我们的矩形面积。 为什么这样做能得出正确答案 首先我们需要先了解一下暴力的做法暴力是通过两个for循环遍历来实现的矩形的面积最大值计算而单调栈是只在每次弹出元素的时候重新计算矩形面积每个元素最多入栈出栈一次所以时间复杂度远小于暴力做法。但我们仔细想一下就能够知道暴力做法是有很多多余的计算步骤的比如以[1,2,3,4,5,6,1]为例子遍历1的时候会把234561遍历完显然效率很低而单调栈在弹出元素时能够确定以当前下标对应的矩形的高的最大面积是多少想清楚这一点这道题就迎刃而解了。 下面是代码 func largestRectangleArea(heights []int) int {var st []intans : 0heights append(heights, -1)for i : 0; i len(heights); i {for len(st) ! 0 heights[i] heights[st[len(st) - 1]] {idx : st[len(st) - 1]st st[:len(st) - 1]var l intif len(st) 0 {l -1} else {l st[len(st) - 1]}ans Max(ans, (i - l - 1) * heights[idx])}st append(st, i)}return ans}func Max(a int, b int) int {if a b {return a}return b}结语 这道题思路来源于bilibili如果觉得不清晰可以看看这个视频。
http://www.eeditor.cn/news/122459/

相关文章:

  • 织梦技术个人网站模板wordpress还原网站源码
  • 求人做网站的网站百度新网站提交入口
  • 专业移动微网站建设宁德市住房和城乡建设局
  • 运河建设集团网站深圳网站建设专家
  • 广州网站设计成功柚米中小型网站建设市场
  • 什么是网站开发wordpress 页面栏目
  • 阿里巴巴个人网站怎么做c 网站开发实例教学
  • 网站建设与管理的体会电子商务网站开发需求分析
  • 如何建立一个企业的网站桂林两江四湖在哪里
  • 电商网站如何做怎么给网站添加代码
  • 洞口网站开发公司网络营销软文范例500字
  • 网站tdk优化精装房软装设计公司
  • 道滘网站仿做app设计思路怎么写
  • 如何做优化网站的原创性文章wordpress调用代码怎么用
  • 网站淘客怎么做wangzhan
  • 建立网站的优势用vs2012做网站教程
  • 河间市做网站郑州网站推广哪家效果好
  • 怎么看别人网站是怎么做的网站vr的建设
  • 安装字体怎么在wordpressseo排名如何优化
  • 网站建设销售专业话术网站东莞优化建设
  • 建e网官方网站公司网站建设系统
  • 织梦cms网站模板修改如何做优化网站排名
  • 温州做网站建设多少钱网站建设的新发展
  • 网易梦幻西游手游官方网站下载品牌建设需打持久战
  • 杭州城西做网站的公司龙岩做网站的公司
  • 网站设计ai西安网站建设定制
  • 网站首页图片做多大哈尔滨的网站建设公司
  • php商城网站开发实例视频教程公司注册地址必须是商业用房吗
  • 辽阳企业网站建设费如何建立自己的网拍平台
  • 没有网站可以做app吗专业网站建设一条龙