文章目录

  • 1. 题目
  • 2. 解题

1. 题目

存在一个 n x n 大小、下标从 0 开始的网格,网格中埋着一些工件。给你一个整数 n 和一个下标从 0 开始的二维整数数组 artifacts ,artifacts 描述了矩形工件的位置,其中 artifacts[i] = [r1i, c1i, r2i, c2i] 表示第 i 个工件在子网格中的填埋情况:

  • (r1i, c1i) 是第 i 个工件 左上 单元格的坐标,且
  • (r2i, c2i) 是第 i 个工件 右下 单元格的坐标。

你将会挖掘网格中的一些单元格,并清除其中的填埋物。
如果单元格中埋着工件的一部分,那么该工件这一部分将会裸露出来。
如果一个工件的所有部分都都裸露出来,你就可以提取该工件。

给你一个下标从 0 开始的二维整数数组 dig ,其中 dig[i] = [ri, ci] 表示你将会挖掘单元格 (ri, ci) ,返回你可以提取的工件数目

生成的测试用例满足:

  • 不存在重叠的两个工件。
  • 每个工件最多只覆盖 4 个单元格。
  • dig 中的元素互不相同。
示例 1:
输入:n = 2, artifacts = [[0,0,0,0],[0,1,1,1]], dig = [[0,0],[0,1]]
输出:1
解释:
不同颜色表示不同的工件。挖掘的单元格用 'D' 在网格中进行标记。
有 1 个工件可以提取,即红色工件。
蓝色工件在单元格 (1,1) 的部分尚未裸露出来,所以无法提取该工件。
因此,返回 1 。
示例 2:
输入:n = 2, artifacts = [[0,0,0,0],[0,1,1,1]], dig = [[0,0],[0,1],[1,1]]
输出:2
解释:红色工件和蓝色工件的所有部分都裸露出来(用 'D' 标记),都可以提取。因此,返回 2 。 提示:
1 <= n <= 1000
1 <= artifacts.length, dig.length <= min(n2, 10^5)
artifacts[i].length == 4
dig[i].length == 2
0 <= r1i, c1i, r2i, c2i, ri, ci <= n - 1
r1i <= r2i
c1i <= c2i
不存在重叠的两个工件
每个工件 最多 只覆盖 4 个单元格
dig 中的元素互不相同

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/count-artifacts-that-can-be-extracted
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 把坐标位置 哈希化(x*k+y) 存入哈希表
  • 遍历所有的工件的所有位置,去哈希表里查找,如果有不存在的就不能挖出来
class Solution {public:int digArtifacts(int n, vector<vector<int>>& artifacts, vector<vector<int>>& dig) {unordered_set<int> d;for(auto& di : dig)d.insert((di[0]<<10)+di[1]);int ans = 0;for(auto& a : artifacts){int r1 = a[0], r2 = a[2], c1 = a[1], c2 = a[3];bool ok = true;for(int i = r1; i <= r2; ++i){for(int j = c1; j <= c2; ++j){int hash = (i<<10)+j;if(d.find(hash) == d.end()){ok = false;break;}}if(!ok) break;}if(ok)ans++;}return ans;        }
};

428 ms 158.6 MB C++


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

LeetCode 2201. 统计可以提取的工件(哈希)相关推荐

  1. LeetCode 1504. 统计全 1 子矩形(记录左侧的连续1的个数)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个只包含 0 和 1 的 rows * columns 矩阵 mat , 请你返回有多少个 子矩形 的元素全部都是 1 . 示例 1: 输入:mat ...

  2. LeetCode 1180. 统计只含单一字母的子串

    文章目录 1. 题目 2. 解题 1. 题目 给你一个字符串 S,返回只含 单一字母 的子串个数. 示例 1: 输入: "aaaba" 输出: 8 解释: 只含单一字母的子串分别是 ...

  3. LeetCode 828. 统计子串中的唯一字符(中心扩展)

    1. 题目 我们定义了一个函数 countUniqueChars(s) 来统计字符串 s 中的唯一字符,并返回唯一字符的个数. 例如:s = "LEETCODE" ,则其中 &qu ...

  4. LeetCode 1277. 统计全为 1 的正方形子矩阵(DP)

    1. 题目 给你一个 m * n 的矩阵,矩阵中的元素不是 0 就是 1,请你统计并返回其中完全由 1 组成的 正方形 子矩阵的个数. 示例 1: 输入:matrix = [[0,1,1,1],[1, ...

  5. C++描述 LeetCode 5677. 统计同构子字符串的数目

    C++描述 LeetCode 5677. 统计同构子字符串的数目   大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博主目前仅在CSDN中写 ...

  6. LeetCode 2135. 统计追加字母可以获得的单词数

    文章目录 一.题目 1.题目描述 2.基础框架 3.原题链接 二.解题报告 1.思路分析 2.时间复杂度 3.代码详解 三.本题小知识 四.加群须知 一.题目 1.题目描述   给你两个下标从 0 开 ...

  7. LeetCode 1905. 统计子岛屿

    LeetCode 1905. 统计子岛屿 题目 思路 代码 题目 链接: https://leetcode.cn/problems/count-sub-islands/ 给你两个 m x n 的二进制 ...

  8. leetcode 6184. 统计共同度过的日子数

    leetcode 6184. 统计共同度过的日子数 题目描述 Alice 和 Bob 计划分别去罗马开会. 给你四个字符串 arriveAlice ,leaveAlice ,arriveBob 和 l ...

  9. LeetCode——1803. 统计异或值在范围内的数对有多少(Count Pairs With XOR in a Range)[困难]——分析及代码(Java)

    LeetCode--1803. 统计异或值在范围内的数对有多少[Count Pairs With XOR in a Range][困难]--分析及代码[Java] 一.题目 二.分析及代码 1. 暴力 ...

最新文章

  1. ISE中ChipScope软件使用
  2. 关于Python多线程的理解
  3. freemarker跳出循环
  4. td不允许自己扩展_V神原文详解:通过及时性检测器(TD)解决区块链的51%攻击问题...
  5. 论文学习9-Bidirectional LSTM-CRF Models for Sequence Tagging(LSTM,BILSTM,LSTM-CRF,BILSTM-CRF
  6. js 省市下拉列表联动
  7. MediaInfo源代码分析 1:整体结构
  8. AB=C型向量分解思路思考
  9. 基于STM32的智能小车--避障设计
  10. 网站制作流程详解(学做网站第一步)
  11. qq 病毒 html,盗qq号软件里有病毒吗
  12. Windows下载安装 PostgreSQL和PostGIS工具,并解决The pgAdmin 4 server could not be contacted:
  13. 在线点餐APP开发前景如何?
  14. 信息学奥赛一本通 1033:计算线段长度
  15. python中import string是什么意思_python string是什么
  16. vue实现限制input只能输入中文
  17. 运筹学基础【五】 之 线性规划
  18. erp系统哪家好?进销存软件哪家好?
  19. PDF转换来的word文件全是文本框怎么办?
  20. 免费天气预报插件jquery版本

热门文章

  1. 机器学习之梯度下降法(GD)和坐标轴下降法(CD)
  2. qmlcanvas绘制3d图形_透视Matplotlib核心功能和工具包 - 绘制3D图形
  3. macbook所有型号大全_苹果笔记本型号大全
  4. python策略模式包含角色_详解Python设计模式之策略模式
  5. redis的java客户端名称_java里常用的redis客户端简介
  6. python 内置方法赋值_Python内置数据结构之字符串str
  7. 导致大量kworker的原因_高尿酸与生活习惯有关?导致高尿酸的8个坏习惯,现在改还来得及...
  8. 第三季2:ORTP库的源码分析、RTP发送实验的源码分析
  9. 驱动框架7——使用gpiolib完成led驱动
  10. oracle模拟重叠事务,ORACLE的事务读一致性与语句读一致性