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

算法-js-最大矩形

题:给定一个由 0 和 1 组成的矩阵 matrix ,找出只包含 1 的最大矩形,并返回其面积。
注意:此题 matrix 输入格式为一维 01 字符串数组。

function maximalRectangle(matrix) {if (matrix.length === 0) return 0;const m = matrix.length;const n = matrix[0].length;let maxArea = 0;// 初始化高度数组(处理第一行)const heights = new Array(n).fill(0);for (let row of matrix) {// 动态更新高度数组for (let j = 0; j < n; j++) {heights[j] = row[j] === '1' ? heights[j] + 1 : 0;}// 计算当前行的最大矩形面积maxArea = Math.max(maxArea, largestRectangleArea(heights));}return maxArea;
}// 柱状图最大面积算法
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];maxArea = Math.max(maxArea, (i - left - 1) * heights[cur]);}stack.push(i);}return maxArea;
}// 测试用例
console.log(maximalRectangle(["10100","10111","11111","10010"])); // 输出 6
console.log(maximalRectangle(["1"]));                            // 输出 1
console.log(maximalRectangle(["1111","1111","1111"]));           // 输出 12

关键步骤:
1、生成高度数组;
2、对每行高度应用柱状图算法

关键点说明

高度数组的构建:
每个位置的高度表示:从当前行向上连续1的个数
遇到0时高度重置为0(无法形成矩形)

复杂度分析:
时间复杂度:O(mn),每行处理需要O(n)时间
空间复杂度:O(n),只需存储当前行的高度数组

性能优势:
比暴力解法的O(m²n)效率提升显著
复用柱状图算法保证每行处理的效率

相关文章:

  • FastDFS分布式文件系统架构学习(一)
  • 从零启动 Elasticsearch
  • 基于智能家居项目 ESP8266 WiFi 模块通信过程与使用方法详解
  • ArkUI-X跨平台框架接入指南
  • 第四天的尝试
  • (5)python爬虫--BeautifulSoup(bs4)
  • DOM知识点
  • LangGraph Platform 快速入门
  • 论文阅读(四):Agglomerative Transformer for Human-Object Interaction Detection
  • [Java实战]Spring Boot整合RabbitMQ:实现异步通信与消息确认机制(二十七)
  • day29 python深入探索类装饰器
  • 给大模型“贴膏药”:LoRA微调原理说明书
  • Java面试实战:从Spring Boot到分布式缓存的深度探索
  • 多指标组合策略思路
  • Vue3学习(组合式API——provide和inject)(跨多层级组件通信/跨多层级共享数据)
  • java加强 -多线程 -创建与常用方法
  • 如何完美安装GPU版本的torch、torchvision----解决torch安装慢 无法安装 需要翻墙安装 安装的是GPU版本但无法使用的GPU的错误
  • ​Docker 网络
  • vue3_flask实现mysql数据库对比功能
  • 一款适配国内的视频软件,畅享大屏与局域网播放
  • IPO周报|本周2只新股申购,比亚迪、上汽“小伙伴”来了
  • 大学2025丨北大教授陈平原:当卷不过AI时,何处是归途
  • 全中国最好的十个博物馆展陈选出来了!
  • 公示资费套餐、规范营销行为,今年信息通信行业将办好这十件实事
  • 关税互降后的外贸企业:之前暂停的订单加紧发货,后续订单考验沟通谈判能力
  • 涉案资金超2亿元 “健康投资”骗局,专挑老年人下手