当前位置: 首页 > 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/782075/

相关文章:

  • 西安住房建设局网站首页网络建设费是什么
  • 聊城网站优化技术河源网站建设
  • 增加收录网站网站制作需要哪些
  • 沈阳模板建站软件网站建设网站软件有哪些内容
  • 知名网站有哪些?深圳宝安区哪里好玩
  • 手机网站模板.网站建设教程微云网盘
  • 高端网站建设,恩愉科技网站后台更新为什么前台不现实
  • 怎样建设网站网站建设时间及简介
  • 网站建设咨询公司排名传统文化传播公司网站建设
  • 网站挂黑链重庆专业seo
  • 89点班组建设网站郑州各区房价一览表
  • 企业网站建设方案策划网站建设选择题
  • 做搬家服务网站问卷调查的目的网站运营报告
  • 科技 网站建设wordpress网站备案
  • 创新的模板网站建设wordpress+附件丢失
  • 做微信小程序网站做任务领游戏的网站
  • 内蒙古网站seo优化微信微官网开发
  • 商业网站建设案例笔记网站建设阶段要做什么
  • 设计模板网站都有哪些发布php做的网站
  • 商城网站开发制作如何在iis下建设网站
  • 征婚网站怎么做微信社群营销推广方案
  • 怀化建设公司网站亚马逊跨境电商怎么做
  • 泰安市网站建设百度搜索广告收费标准
  • 深圳网站建设公司信任湖南岚鸿信 赖wordpress++xml
  • 河南省建设银行网站时间轴 网站模板
  • 广告公司微网站建设万户网络科技有限公司怎么样
  • 网站建设方案云盘网站程序定制开发流程
  • 网站制作com cn域名有什么区别google关键词排名
  • 做网站要用什么软件图文教程水墨背景风格企业网站模板
  • 甘肃建设住房厅网站首页企业管理网站