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;}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/41056.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【LeetCode】每日一题:跳跃游戏 II

给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说&#xff0c;如果你在 nums[i] 处&#xff0c;你可以跳转到任意 nums[i j] 处: 0 < j < nums[i] i j < n 返回到达 nums[n - 1] 的最小…

Node.js的下载、安装和配置

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

返回值处理器器【Spring源码学习】

定义返回值类型处理器的组合&#xff1b; public static HandlerMethodReturnValueHandlerComposite getReturnValueHandler(){HandlerMethodReturnValueHandlerComposite composite new HandlerMethodReturnValueHandlerComposite();// 处理ModelAndViewcomposite.addHandle…

Vue3--Watch、Watcheffect、Computed的使用和区别

Vue3–Watch、Watcheffect、Computed的使用和区别 一、watch 1.功能 watch 用于监听响应式数据的变化&#xff0c;并在数据变化时执行特定的回调函数。适合在响应式数据变化时执行异步操作或复杂逻辑。 2.主要特点 指定数据监听&#xff1a;可以精确地监听一个或多个响应式…

python:如何防止隔壁老王破你的WIFI?

Python 与网络安全&#xff1a;最佳拍档 Python 凭借其简洁的语法和丰富的库支持&#xff0c;成为进行网络安全测试和加固的理想选择。下面&#xff0c;我们将深入几个实用场景&#xff0c;看看 Python 如何帮助我们成为自家网络安全的守护者。 1. 网络监控&#xff1a;Scapy…

Elasticsearch实战教程:如何使用集群索引数据来进行统计多个数据?

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 引入 Elasticsearch聚合查询是一种强大的工具&#xff0c;允许我们对索引中的数据进行复杂的统计分析和计算。本文将详细解释一…

CFS三层内网渗透——外网打点(一)

目录 外网打点 先爆破一下看看有没有啥可进攻路径 尝试那个可疑的路径发现是thinkphp这个框架&#xff0c;同时也知道了版本&#xff0c;那就nday打吧 写入php ​编辑写入php成功&#xff0c;简简单单nday拿下​编辑 蚁剑rce尝试链接 打点成功 外网打点 先爆破一下看看有…

(自适应手机端)保健品健康产品网站模板下载

(自适应手机端)保健品健康产品网站模板下载PbootCMS内核开发的网站模板&#xff0c;该模板适用于装修公司网站、装潢公司网站等企业&#xff0c;当然其他行业也可以做&#xff0c;只需要把文字图片换成其他行业的即可&#xff1b;自适应手机端&#xff0c;同一个后台&#xff0…

己内酰胺纯化除杂的最佳工艺

己内酰胺纯化除杂的最佳工艺包括结晶法、离子交换树脂法、精馏法和萃取法等&#xff0c;每种方法都有其特定的应用场景和优缺点。以下是对这些方法的详细介绍&#xff1a; 最佳工艺介绍 ● 结晶法&#xff1a;通过调节pH值&#xff0c;使己内酰胺在特定条件下结晶&#xff0…

数字流的秩

题目链接 数字流的秩 题目描述 注意点 x < 50000 解答思路 可以使用二叉搜索树存储出现的次数以及数字的出现次数&#xff0c;方便后续统计数字x的秩关键在于构建树的过程&#xff0c;如果树中已经有值为x的节点&#xff0c;需要将该节点对应的数字出现次数加1&#xf…

2025深圳国际消费电子展览会

2025深圳国际消费电子展览会 时间&#xff1a;2025年06月25-27日 地点&#xff1a;深圳国际会展中心(新馆) 详询主办方陆先生 I38&#xff08;前三位&#xff09; I82I&#xff08;中间四位&#xff09; 9I72&#xff08;后面四位&#xff09; 展会介绍&#xff1a; 20…

JAVA API营业执照识别、企业工商信息查询

现如今&#xff0c;随着互联网技术的不断成熟与智能应用的不断普及&#xff0c;人们对于营业执照识别技术的需求越来越大。像工商、税务、银行、网上注册等一些应用场景在进行经营活动和业务中&#xff0c;都需要对营业执照的信息进行采集和录入&#xff0c;无论是个人业务还是…

父子情深短视频:成都柏煜文化传媒有限公司

成都柏煜文化传媒有限公司 &#xff0c;镜头下的温馨时光 在这个快节奏、高压力的时代&#xff0c;人们往往在忙碌中忽略了身边最珍贵的情感纽带。然而&#xff0c;在社交媒体的浪潮中&#xff0c;有一种短视频以其独特的魅力&#xff0c;悄然温暖了无数人的心房——那就是父…

从零开始开发跑腿配送系统:技术选型与架构设计

开发一个跑腿配送系统涉及多个技术栈和模块&#xff0c;从前端到后端&#xff0c;再到数据库和实时通信&#xff0c;每一个环节都至关重要。本文将详细介绍从零开始开发跑腿配送系统的技术选型与架构设计&#xff0c;并提供部分代码示例以帮助理解。 一、技术选型 前端技术&am…

Linux/Ubuntu访问局域网共享文件夹

文件夹中找到“Other Location”&#xff0c;输入“smb:IP地址/共享文件夹名称”&#xff0c;然后点击connect后者直接回车即可&#xff01; End&#xff01;

五.核心动画 - 图层的变换(平移,缩放,旋转,3D变化)

引言 在上一篇博客中&#xff0c;我们研究了一些视觉效果&#xff0c;在本篇博客中我们将要来讨论一下图层的旋转&#xff0c;平移&#xff0c;缩放&#xff0c;以及可以将扁平物体转换成三维空间对象的CATransform3D。 图层变换 图层的仿射变换 在视图中有一个transform属…

【机器学习】分类算法-KNN算法实践

一、前言 前面的一篇文章介绍了KNN算法的基本思想&#xff0c;接下来我们就根据B站UP主【abilityjh】老师的节奏&#xff0c;做一个关于KNN算法运用于“约会网站配对”的算法实现。当然&#xff0c;这个实践的代码是一样的&#xff0c;但是理解的话&#xff0c;我是用自己的话来…

代码技巧专题 -- 使用策略模式编写HandleService

一.前言 最近项目有实习的同事加入&#xff0c;很多实习同事反映&#xff0c;看不懂项目中的一些使用了设计模式的代码&#xff0c;比如HandleService&#xff0c;Chains&#xff0c;Listener等。本篇就介绍一下策略模式在项目中的使用&#xff0c;也就是我们常在项目中看到的X…

Lemo 的项目管理类博文导航

&#x1f447;&#x1f447;&#x1f447;&#x1f447;&#x1f447;&#x1f447; 升级大脑&#xff01;构建你的个人知识管理系统的黄金法则 &#x1f447;&#x1f447;&#x1f447;&#x1f447;&#x1f447;&#x1f447; 如何优雅做好项目管理&#xff1f; 软件质量大…

抖音微短剧小程序入驻指南

一、抖音微短剧小程序类目和准入要求是什么&#xff1f; 可以明确的告诉你抖音微短剧小程序入驻是需要报白的&#xff0c;属于定邀类目&#xff0c;官方准入要求如下&#xff1a; 类目要求&#xff1a;文娱-微短剧 定向准入&#xff0c;填写“【微短剧】类目定向邀约申请表”…