文章目录

  • 1. 题目
  • 2. 解题

1. 题目

给你一个二维整数数组 ranges 和两个整数 left 和 right 。每个 ranges[i] = [starti, endi] 表示一个从 starti 到 endi 的 闭区间 。

如果闭区间 [left, right] 内每个整数都被 ranges 中 至少一个 区间覆盖,那么请你返回 true ,否则返回 false 。

已知区间 ranges[i] = [starti, endi] ,如果整数 x 满足 starti <= x <= endi ,那么我们称整数 x 被覆盖了。

示例 1:
输入:ranges = [[1,2],[3,4],[5,6]], left = 2, right = 5
输出:true
解释:2 到 5 的每个整数都被覆盖了:
- 2 被第一个区间覆盖。
- 3 和 4 被第二个区间覆盖。
- 5 被第三个区间覆盖。示例 2:
输入:ranges = [[1,10],[10,20]], left = 21, right = 21
输出:false
解释:21 没有被任何一个区间覆盖。提示:
1 <= ranges.length <= 50
1 <= starti <= endi <= 50
1 <= left <= right <= 50

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/check-if-all-the-integers-in-a-range-are-covered
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 把每个满足 [left, right] 的数插入到 set 中,检查 set 的大小
class Solution {public:bool isCovered(vector<vector<int>>& ranges, int left, int right) {unordered_set<int> s;for(auto& r : ranges){int a = r[0], b = r[1];for(int i = max(a, left); i <= min(b, right); ++i)s.insert(i);}return s.size() == right-left+1;}
};

4 ms 8.7 MB C++

以上的时间复杂度在数据范围很大的时候,效率很低

  • 可以采用差分的方法,参考官方题解
    类似题目:LeetCode 1109. 航班预订统计(差分思想)
class Solution {public:bool isCovered(vector<vector<int>>& ranges, int left, int right) {vector<int> ct(52, 0);for(auto& r : ranges){ct[r[0]]++;ct[r[1]+1]--;}int s = 0;for(int i = 0; i <= right; ++i){s += ct[i];if(i >= left && s == 0)return false;}return true;}
};

4 ms 8.7 MB C++


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

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

LeetCode 1893. 检查是否区域内所有整数都被覆盖(差分)相关推荐

  1. 1893. 检查是否区域内所有整数都被覆盖

    theme: healer-readable 给你一个二维整数数组 ranges 和两个整数 left 和 right .每个 ranges[i] = [starti, endi] 表示一个从 sta ...

  2. LeetCode简单题之检查是否区域内所有整数都被覆盖

    题目 给你一个二维整数数组 ranges 和两个整数 left 和 right .每个 ranges[i] = [starti, endi] 表示一个从 starti 到 endi 的 闭区间 . 如 ...

  3. 百度地图高级实例2-如何利用自己的数据制作社交地图?只显示可视区域内的标注

    摘要:如果你自己的数据已经超过1万个,如何进行合理的显示?除了聚合marker外,还有一个办法.那就是,只显示可视区域内的标注. ----------------------------------- ...

  4. 如何利用自己的数据制作社交地图?只显示可视区域内的标注

    地址:http://www.cnblogs.com/milkmap/archive/2012/02/02/2335989.html [百度地图API]如何利用自己的数据制作社交地图?只显示可视区域内的 ...

  5. 【百度地图API】如何利用自己的数据制作社交地图?只显示可视区域内的标注...

    原文:[百度地图API]如何利用自己的数据制作社交地图?只显示可视区域内的标注 摘要:如果你自己的数据已经超过1万个,如何进行合理的显示?除了聚合marker外,还有一个办法.那就是,只显示可视区域内 ...

  6. 【百度地图API】如何利用自己的数据制作社交地图?只显示可视区域内的标注

    [百度地图API]如何利用自己的数据制作社交地图?只显示可视区域内的标注 摘要:如果你自己的数据已经超过1万个,如何进行合理的显示?除了聚合marker外,还有一个办法.那就是,只显示可视区域内的标注 ...

  7. small用于不连续数组_Excel公式技巧19: 在方形区域内填充不重复的随机整数

    学习Excel技术,关注微信公众号: excelperfect 本文分享一个基于公式生成n×n随机整数的解决方案,并且每个整数都是唯一的.例如,下图1显示了生成10行10列的不重复随机整数. 图1 解 ...

  8. LeetCode 1346. 检查整数及其两倍数是否存在(哈希)

    1. 题目 给你一个整数数组 arr,请你检查是否存在两个整数 N 和 M,满足 N 是 M 的两倍(即,N = 2 * M). 更正式地,检查是否存在两个下标 i 和 j 满足: i != j 0 ...

  9. [C++Rust]LeetCode No.363 矩形区域不超过 K 的最大数值和

    原贴地址:http://blog.leanote.com/post/dawnmagnet/363 题目 给你一个 m x n 的矩阵 matrix 和一个整数 k ,找出并返回矩阵内部矩形区域的不超过 ...

最新文章

  1. 最新必读图神经网络论文
  2. SQL Server 查找统计信息的采样时间与采样比例
  3. 多线程CreateThread函数的用法及注意事项
  4. 版本不一致_一致哈希:Beyond the basics
  5. centos安装与配置R语言
  6. 智能助手被指侵犯用户隐私,美三大科技巨头或面临调查;传小米已解散其VR头显Mi VR团队;特斯拉成立反欺诈部门……...
  7. CVE-2020-16875:Microsoft Exchange RCE复现
  8. unity序列帧优化—Addressables
  9. 数学建模——五大类模型
  10. SVN Server使用说明
  11. 1092 : 素数表(函数专题)
  12. Android Shape 详细使用
  13. 越来越多的主板增加了WIFI功能,但是你真能用得到吗?
  14. HTML CSS设计与构建网站 ([美]达科特) PDF原版​
  15. Delphi为什么都不用了?公司CTO不向老板推荐使用Delphi的13 个真实原因
  16. neo4j安装及内存分配
  17. Linux 常用命令 Updating
  18. 一图弄懂Arthas——Java故障定位神器
  19. 禁止Windows10系统调整屏幕分辨率的方法
  20. Interactive natural language question answering over knowledge graphs论文导读

热门文章

  1. 【numpy】20道numpy题目
  2. Django模型关系
  3. oracle数据库更新语句_20_手把手教你学Python之操作数据库
  4. python计算绩效工资_python实现 --工资管理系统
  5. 第二季4:HI_S32 SAMPLE_VENC_1080P_CLASSIC(HI_VOID)函数的分析
  6. java关闭一个窗口打开另一个_推开中式门窗,就像打开了另一个写意的世界…...
  7. 【原】git命令行查看全部分支与远程分支不同步问题
  8. jmeter+WebDriver:启动浏览器进行web自动化
  9. Babel+vscode实现APICloud开发中兼容ES6及以上代码
  10. 输入框设置只能输入数字