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

网站建设怎么挣钱wordpress文章内页的图片地址修改

网站建设怎么挣钱,wordpress文章内页的图片地址修改,营销型网站建设一般要多少钱,重庆市工程造价信息网查询5. 柱状图中最大的矩形 给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。 求在该柱状图中,能够勾勒出来的矩形的最大面积。 示例 1: !https://assets.leetcode.com/uploads/2021/01/04/histogram.jpg …

5. 柱状图中最大的矩形

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

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

示例 1:

!https://assets.leetcode.com/uploads/2021/01/04/histogram.jpg

输入:heights = [2,1,5,6,2,3]
输出:10
解释:最大的矩形为图中红色区域,面积为 10

示例 2:

!https://assets.leetcode.com/uploads/2021/01/04/histogram-1.jpg

输入: heights = [2,4]
输出: 4

提示:

  • 1 <= heights.length <=105
  • 0 <= heights[i] <= 104

题解

别人说的:

单调增栈:

  • 进栈前弹出的都是左边比自己大的→确定左边界;
  • 出栈时必定是右边第一次遇到比自己小的→确定右边界

思路:

对于每一个柱状图,我们要求它的高度向左最远能到哪里,向右最远能到哪里。

也就是找左边第一个比它小的数,以及右边第一个比它小的数。

找一系列数中第一个比自己小/大的数→单调栈问题。

所以可以建两个栈,一个存左边第一个比自己小的数,一个存右边第一个比自己小的数。(单调递增栈)

代码如下:

class Solution {
public:int largestRectangleArea(vector<int>& heights) {int n = heights.size();stack<int> stk;vector<int> left(n), right(n);int ans = 0;for(int i = 0; i < n; i ++ ) {while(stk.size() && heights[i] <= heights[stk.top()]) {stk.pop();}left[i] = stk.empty() ? -1 : stk.top();stk.push(i);}stk = stack<int>();for(int i = n - 1; i >= 0; i -- ) {while(stk.size() && heights[i] <= heights[stk.top()]) {stk.pop();}right[i] = stk.empty() ? n : stk.top();stk.push(i);}for(int i = 0; i < n; i ++ ) {ans = max(ans, (right[i] - left[i] - 1) * heights[i]);}return ans;}
};

还可以优化。

当一个数出栈时,它是第一次遇到比它小的数,也就是它的右边界。

如果一个数没出栈,说明它的右边没有比它小的数,它的右边界是n。

所以可以优化(但是时间空间复杂度都没变hhh),代码如下:

class Solution {
public:int largestRectangleArea(vector<int>& heights) {int n = heights.size();stack<int> stk;vector<int> left(n), right(n, n);int ans = 0;for(int i = 0; i < n; i ++ ) {while(stk.size() && heights[i] <= heights[stk.top()]) {right[stk.top()] = i;stk.pop();}left[i] = stk.empty() ? -1 : stk.top();stk.push(i);}for(int i = 0; i < n; i ++ ) {ans = max(ans, (right[i] - left[i] - 1) * heights[i]);}return ans;}
};
http://www.dtcms.com/wzjs/587253.html

相关文章:

  • 成品网站速成网站温州建设局官方网站
  • 用外服务器做网站建立网站的市场价格
  • seo整站优化哪家好制作公司网站的规划
  • 南通专业网站设计制作北京怎么进行网页设计
  • 对网站域名销户怎么做西安网站架设公司
  • 渭南企业网站建设外贸电商
  • 三合一网站开发有什么区别网站的字体做多大
  • 做网站计入什么科目店面设计方案
  • 外贸在哪些网站开发客户wordpress语法高亮
  • 做网站的技术路线个人网站建站申请
  • 云端建站快车17做网店这个网站做起多少钱
  • 网站建设最便宜如何查询在建项目
  • 网站绑定多个域名专注高端网站设计
  • 岱山建设网站手机建站图片
  • 收到短信说备案被退回但工信部网站上正常啊400网站建设办公
  • 深圳做网站建设旅游网站设计及开发
  • 广州站在哪里爱做网站视频
  • 有新浪的域名怎么做网站微信外链网站开发
  • logo和网站主色调企业网站开发制作
  • 做家具厂招聘有哪些网站wordpress小工具选项
  • 免费的网站推广怎么做效果好网页游戏排行榜 511
  • 做个公司网站一般多少钱漯河网做网站
  • 提高分辨率网站公司网站建设设计
  • 做化工哪个网站好广州技术支持 网站建设
  • 一 网站开发体会全国小微企业名录查询系统
  • 巴中哪里可以做公司网站视频号推广
  • 珠海做网站开发河北建设工程信息网下载时间
  • 灵璧做网站有没有找外加工的活的平台
  • 阳江做网站多少钱详情页设计尺寸
  • 笔记本可以做网站吗公司网络组建方案怎么写