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

leetcode 403周赛 包含所有1的最小矩形面积||「暴力」

3197. 包含所有 1 的最小矩形面积 II

题目描述:

给你一个二维 二进制 数组 grid。你需要找到 3 个 不重叠、面积 非零 、边在水平方向和竖直方向上的矩形,并且满足 grid 中所有的 1 都在这些矩形的内部。

返回这些矩形面积之和的 最小 可能值。

注意,这些矩形可以相接。

1 < = g r i d . l e n g t h , g r i d [ i ] . l e n g t h < = 30 1 <= grid.length, grid[i].length <= 30 1<=grid.length,grid[i].length<=30

思路:

观察数据范围,n只有30,估计是 O ( n 4 ) O(n^4) O(n4)甚至是 O ( n 5 ) O(n^5) O(n5),所以要想办法暴力

我们只能做到 O ( n 2 ) O(n^2) O(n2)的方法去计算一个区域中用一个矩形覆盖的情况

所以要想办法只枚举两次就能把图形分割成三份,情况如下

w403d.png

写代码的时候要仔细,注意下标

class Solution {
public:int n, m, tr[35][35];int cal(int x1, int y1, int x2, int y2){bool fuck = 0;int x_max = 0, x_min = 1e9, y_max = 0, y_min = 1e9;for(int i = x1; i <= x2; ++i){for(int j = y1; j <= y2; ++j){if(tr[i][j]){fuck = 1;x_max = max(x_max, i);x_min = min(x_min, i);y_max = max(y_max, j);y_min = min(y_min, j);}}}if(fuck == 0)return 0;return (x_max - x_min + 1) * (y_max - y_min + 1);}int minimumSum(vector<vector<int>>& num) {n = num.size();m = num[0].size();for(int i = 1; i <= n; ++i){for(int j = 1; j <= m; ++j){tr[i][j] = num[i - 1][j - 1];}}int ans = 1e9;for(int i = 1; i <= n; ++i){for(int j = i + 1; j <= n; ++j){ans = min(ans, cal(1,1, i, m) + cal(i + 1, 1, j, m) + cal(j + 1, 1, n, m));}for(int j = 1; j <= m; ++j){ans = min(ans, cal(1, 1, i, j) + cal(i + 1, 1, n, j) + cal(1, j + 1, n, m));ans = min(ans, cal(1, 1, n, j) + cal(1, j + 1, i, m) + cal(i + 1, j + 1, n, m));ans = min(ans, cal(1, 1, i, j) + cal(1, j + 1, i, m) + cal(i + 1, 1, n, m));ans = min(ans, cal(1, 1, i, m) + cal(i + 1, 1, n, j) + cal(i + 1, j + 1, n, m));}}for(int i  = 1; i <= m; ++i){for(int j = i + 1; j <= m; ++j){ans = min(ans, cal(1, 1, n, i) + cal(1, i + 1, n, j) + cal(1, j + 1, n, m));}}return ans;}
};

相关文章:

  • 玄机——第七章 常见攻击事件分析--钓鱼邮件 wp
  • AI绘画Stable Diffusion 解锁精美壁纸创作:利用SD与LLM定制你的专属壁纸,AI副业变现指南!
  • 使用LabVIEW报告生成工具包时报错97
  • 解决pip默认安装位置在C盘方法
  • react apollo hooks
  • 如何在Docker容器中,修改MySQL密码
  • 解决mybastis-plus加入逻辑删除SQL语句自动拼接未删除的问题
  • Java数据结构面试题(一)
  • 联合查询(多表查询)
  • Nikto扫描器,扫描网站信息
  • 智慧城市安全应用
  • 【总线】AXI4第六课时:寻址选项深入解析
  • Conmi的正确答案——ESP32-C3开启安全下载模式
  • WordPress中文网址导航栏主题风格模版HaoWa
  • 2024年Nano编辑器最新使用教程
  • angular2 简述
  • Angular数据绑定机制
  • ES2017异步函数现已正式可用
  • Iterator 和 for...of 循环
  • JavaScript服务器推送技术之 WebSocket
  • mysql外键的使用
  • vue和cordova项目整合打包,并实现vue调用android的相机的demo
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 高度不固定时垂直居中
  • 近期前端发展计划
  • 聊聊hikari连接池的leakDetectionThreshold
  • 算法-图和图算法
  • 问:在指定的JSON数据中(最外层是数组)根据指定条件拿到匹配到的结果
  • 新手搭建网站的主要流程
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • 扩展资源服务器解决oauth2 性能瓶颈
  • #、%和$符号在OGNL表达式中经常出现
  • #设计模式#4.6 Flyweight(享元) 对象结构型模式
  • (C++20) consteval立即函数
  • (板子)A* astar算法,AcWing第k短路+八数码 带注释
  • (草履虫都可以看懂的)PyQt子窗口向主窗口传递参数,主窗口接收子窗口信号、参数。
  • (每日持续更新)jdk api之FileReader基础、应用、实战
  • (十三)Maven插件解析运行机制
  • (算法)Travel Information Center
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • (转)memcache、redis缓存
  • (转)setTimeout 和 setInterval 的区别
  • .gitignore文件忽略的内容不生效问题解决
  • .NET C# 操作Neo4j图数据库
  • .NET Project Open Day(2011.11.13)
  • .NET 常见的偏门问题
  • .NET 依赖注入和配置系统
  • .net后端程序发布到nignx上,通过nginx访问
  • .NET使用存储过程实现对数据库的增删改查
  • .net专家(张羿专栏)
  • .vollhavhelp-V-XXXXXXXX勒索病毒的最新威胁:如何恢复您的数据?
  • :not(:first-child)和:not(:last-child)的用法
  • @JsonSerialize注解的使用
  • [android] 练习PopupWindow实现对话框
  • [ArcPy百科]第三节: Geometry信息中的空间参考解析