首页 > 其他分享 >2024-03-19 leetcode写题记录

2024-03-19 leetcode写题记录

时间:2024-03-20 22:11:54浏览次数:23  
标签:03 写题 19 2024 ++ int vector ans

目录

2024-03-19 leetcode写题记录

85. 最大矩形

题目链接

85. 最大矩形

题意

给定一个仅包含 0 和 1 、大小为 rows x cols 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。

image

解法

先对每个元素求出其往上能延伸的高度,然后再对每一行作为下边界考虑,考虑行里每个元素作为连续区间里最小元素的情况,从而就变成了求每个元素往左右两边找比自身的高度更低的元素所在的位置,用单调栈跑一遍就行。

class Solution {
   public:
    int maximalRectangle(vector<vector<char>> matrix) {
        int n = matrix.size(), m = matrix[0].size();
        vector<vector<int>> h(n, vector<int>(m, 0));
        for (int i = 0; i < n; ++i) {
            for (int j = 0; j < m; ++j) {
                if (matrix[i][j] == '0') continue;
                if (i == 0)
                    h[i][j] = 1;
                else
                    h[i][j] = h[i - 1][j] + 1;
            }
        }
        int ans = 0;
        for (int i = 0; i < n; ++i) {
            stack<int> s;
            vector<int> l(m, 0), r(m, m - 1);
            for (int j = 0; j < m; ++j) {
                while (!s.empty() && h[i][s.top()] >= h[i][j]) {
                    r[s.top()] = j - 1;
                    s.pop();
                }
                if (!s.empty()) l[j] = s.top() + 1;
                s.push(j);
            }
            for (int j = 0; j < m; ++j) 
                ans = max(ans, (r[j] - l[j] + 1) * h[i][j]);
        }
        return ans;
    }
};

标签:03,写题,19,2024,++,int,vector,ans
From: https://www.cnblogs.com/FlyingLight/p/18086207

相关文章

  • 厉害啊!分离人声,全靠这4款2024最新款音频分离工具
    在音频处理中,人声分离是一个常见的需求。简单来说,人声分离就是将混合音频中的人声和背景音乐(或其他环境声音)分离的过程。随着科技的发展,我们已经有多种方法和技术可以实现这一目标。在本文中,我们将介绍四种可以实现人声分离的工具和方法。一、金舟音频大师(1)工具介绍:金舟音......
  • 史上最全Java核心面试题(带全部答案)2024年最新版
    今天要谈的主题是关于求职,求职是在每个技术人员的生涯中都要经历多次。对于我们大部分人而言,在进入自己心仪的公司之前少不了准备工作,有一份全面细致面试题将帮助我们减少许多麻烦。在跳槽季来临之前,特地做这个系列的文章,一方面帮助自己巩固下基础,另一方面也希望帮助想要换工......
  • 2024年跨境电商发展前景
    2024年跨境电商发展前景根据搜索结果,2024年跨境电商仍将保持较强的增长势头。据eMarketer预测,到2026年,电子商务在全球零售领域的渗透率将上升至23.6%[1]。因此,跨境电商市场潜力巨大,现在入局并不算晚。如何做好2024年的跨境电商选择合适的平台亚马逊是最受欢迎的......
  • 2024年03月 Discourse 3.3.0.beta1 版本的更新
    在这个版本的更新中Discourse完成了Ember5版本的升级和更新。Ember.js是一个用于创建web应用的开源JavaScriptMVC框架,采用基于字符串的Handlebars模板,支持双向绑定、观察者模式、计算属性(依赖其他属性动态变化)、自动更新模板、路由控制、状态机等。Ember是一个雄心勃......
  • STM32 HAL库基于F103系列之异步通信
    硬件资源串口1(PA9/PA10连接在板载USB转串口芯片CH340C上面) 原理图USB转串口硬件部分的原理图 程序设计USART/UART异步通信配置步骤1、配置串口工作参数  HAL_UART_Init()2,串口底层初始化  HAL_UART_MspInit()   配置GPIO、NVIC、CLOCK等3,开启串口异步接......
  • 20240320打卡
    第四周第一天第二天第三天第四天第五天第六天第七天所花时间1h5h3h代码量(行)212359274博客量(篇)111知识点了解Kotlin编写用户注册与登录功能jetpack的深入使用hilt依赖注入与kotlin协程等知识了解JetpckDagger-Hilt依赖......
  • 新增文章分类(2024-3-20)
    //CategoryControllerpackagecom.di.bigevent.controller;importcom.di.bigevent.pojo.Category;importcom.di.bigevent.pojo.Result;importcom.di.bigevent.service.CategoryService;importorg.springframework.beans.factory.annotation.Autowired;importorg.s......
  • 文化课杂记 2024.3.20
    文化课生活里的一点小思考,东西说真的很混乱。我其实不太清楚,我该以怎样的一种方式,说出来,我在想什么。或者说,我并不明了读者看完之后应该是怎样的感受,所以就随便吧。一其实看任何东西,都看不到全面。看前面时看不到后面,转过头看后面时又不知道前面发生的事了。你看到了你想看到......
  • WolvCTF2024 一道RE题目的分析
    doubledelete'srevenge:这道题给了两个附件:reveng1(elf)和一个未知格式文件flag.txt.enchxd看一下这个文件应该是加密过的文件再来分析一下elf程序逻辑是读取文件,然后进行加密,然后再写出文件,刚才那个flag.txt.enc加密过程:fread(ptr,1uLL,0x30uLL,stream);//......
  • 2024年中国传媒大学程序设计大赛(同步赛)赛题记录
    比赛地址:https://ac.nowcoder.com/acm/contest/77526开错题了,赛时就出了5题;补题顺带写一下记录A:小苯的区间和疑惑链接:https://ac.nowcoder.com/acm/contest/77526/A大意:给一个数组\(a\),让你对数组中每一个数\(a_i\),求包含这个数的一个区间,要求这个区间的值的和最大;......