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

怎样做网站海报临潼区做网站的公司

怎样做网站海报,临潼区做网站的公司,如何查找网站根目录,个人网页设计模板html代码题:给定非负整数数组 heights ,数组中的数字用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。 function largestRectangleArea(heights) {let maxArea 0;const s…

题:给定非负整数数组 heights ,数组中的数字用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。

function largestRectangleArea(heights) {let maxArea = 0;const stack = [];// 添加哨兵值处理边界情况heights = [0, ...heights, 0];for (let i = 0; i < heights.length; i++) {// 当当前高度小于栈顶高度时,计算面积while (stack.length && heights[i] < heights[stack[stack.length - 1]]) {const cur = stack.pop();const left = stack[stack.length - 1];const width = i - left - 1;maxArea = Math.max(maxArea, width * heights[cur]);}stack.push(i);}return maxArea;
}// 示例测试
console.log(largestRectangleArea([2,1,5,6,2,3])); // 输出 10
console.log(largestRectangleArea([2,4]));         // 输出 4

算法原理说明:
单调递增栈:维护一个存储柱状图索引的栈,保证栈中索引对应的柱子高度单调递增

关键操作:
当遇到较小高度时,弹出栈顶元素作为当前高度
计算宽度:当前索引 - 新栈顶索引 - 1
面积计算:高度 * 宽度

哨兵技巧:
在数组首尾添加0作为边界哨兵
避免处理空栈的特殊情况
确保所有柱子都会被计算

复杂度分析:
时间复杂度:O(n),每个元素最多入栈和出栈一次
空间复杂度:O(n),最坏情况下需要存储所有元素的索引

http://www.dtcms.com/wzjs/817510.html

相关文章:

  • 做网站图片大会导致慢大连哪个企业想做网站
  • 免费个人网站北京商业设计网站
  • 旅游网站建设要求好用的a站
  • 网站开发模式框架开放平台设计方案
  • 汕头建站程序深圳做app网站建设
  • 装修网站建设价格无锡网站推广外包服务
  • 内部券网站怎么做自己做网站能赚钱
  • 那个网站可以做考卷网站图片要多少像素
  • 网站改版 百度收录青岛企业网站开发
  • python网站开发快吗长春网站建设找源晟
  • 删除西部数码网站管理助手东莞建筑公司都有哪些
  • 中国石化工程建设有限公司官网南京网络优化公司有哪些
  • 站长统计在线观看国内永久免费的crm
  • 网络营销 网站建设深圳找网站建设公司哪家好
  • ppt可以做网站收录软件最多的网站
  • 网站找哪些单位做实名认证做网站设计用什么软件最好
  • 什么网站免费做简历模板室内装修公司哪家好
  • 辽宁阜新建设学校官方网站电影网站开发PPT模板
  • 盐城网站开发市场现在有什么网站做设计或编程兼职
  • 黑龙江龙采做网站如何建站软件
  • 营销神器官方网站wordpress做视频网站
  • 个人建网站首选什么域名好seo优化推广
  • 如何搜索asp网站directadmin备份网站
  • 网站建设小程序开发seo推广wordpress获取分类列表和分页
  • t型网站域名和版面有专业做网站的学校吗
  • 视频网站开发平台医疗图片做网站图片
  • 力杨网站建设wordpress如何增加产品类目
  • dremrever怎么做网站桂林网站制作找志合网络公司
  • 教育门户网站建设上海社区网站建设
  • 药品招采网站建设费用集团网站手机版