LeetCode 1893. 检查是否区域内所有整数都被覆盖(差分)
文章目录
- 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. 检查是否区域内所有整数都被覆盖(差分)相关推荐
- 1893. 检查是否区域内所有整数都被覆盖
theme: healer-readable 给你一个二维整数数组 ranges 和两个整数 left 和 right .每个 ranges[i] = [starti, endi] 表示一个从 sta ...
- LeetCode简单题之检查是否区域内所有整数都被覆盖
题目 给你一个二维整数数组 ranges 和两个整数 left 和 right .每个 ranges[i] = [starti, endi] 表示一个从 starti 到 endi 的 闭区间 . 如 ...
- 百度地图高级实例2-如何利用自己的数据制作社交地图?只显示可视区域内的标注
摘要:如果你自己的数据已经超过1万个,如何进行合理的显示?除了聚合marker外,还有一个办法.那就是,只显示可视区域内的标注. ----------------------------------- ...
- 如何利用自己的数据制作社交地图?只显示可视区域内的标注
地址:http://www.cnblogs.com/milkmap/archive/2012/02/02/2335989.html [百度地图API]如何利用自己的数据制作社交地图?只显示可视区域内的 ...
- 【百度地图API】如何利用自己的数据制作社交地图?只显示可视区域内的标注...
原文:[百度地图API]如何利用自己的数据制作社交地图?只显示可视区域内的标注 摘要:如果你自己的数据已经超过1万个,如何进行合理的显示?除了聚合marker外,还有一个办法.那就是,只显示可视区域内 ...
- 【百度地图API】如何利用自己的数据制作社交地图?只显示可视区域内的标注
[百度地图API]如何利用自己的数据制作社交地图?只显示可视区域内的标注 摘要:如果你自己的数据已经超过1万个,如何进行合理的显示?除了聚合marker外,还有一个办法.那就是,只显示可视区域内的标注 ...
- small用于不连续数组_Excel公式技巧19: 在方形区域内填充不重复的随机整数
学习Excel技术,关注微信公众号: excelperfect 本文分享一个基于公式生成n×n随机整数的解决方案,并且每个整数都是唯一的.例如,下图1显示了生成10行10列的不重复随机整数. 图1 解 ...
- LeetCode 1346. 检查整数及其两倍数是否存在(哈希)
1. 题目 给你一个整数数组 arr,请你检查是否存在两个整数 N 和 M,满足 N 是 M 的两倍(即,N = 2 * M). 更正式地,检查是否存在两个下标 i 和 j 满足: i != j 0 ...
- [C++Rust]LeetCode No.363 矩形区域不超过 K 的最大数值和
原贴地址:http://blog.leanote.com/post/dawnmagnet/363 题目 给你一个 m x n 的矩阵 matrix 和一个整数 k ,找出并返回矩阵内部矩形区域的不超过 ...
最新文章
- 最新必读图神经网络论文
- SQL Server 查找统计信息的采样时间与采样比例
- 多线程CreateThread函数的用法及注意事项
- 版本不一致_一致哈希:Beyond the basics
- centos安装与配置R语言
- 智能助手被指侵犯用户隐私,美三大科技巨头或面临调查;传小米已解散其VR头显Mi VR团队;特斯拉成立反欺诈部门……...
- CVE-2020-16875:Microsoft Exchange RCE复现
- unity序列帧优化—Addressables
- 数学建模——五大类模型
- SVN Server使用说明
- 1092 : 素数表(函数专题)
- Android Shape 详细使用
- 越来越多的主板增加了WIFI功能,但是你真能用得到吗?
- HTML CSS设计与构建网站 ([美]达科特) PDF原版​
- Delphi为什么都不用了?公司CTO不向老板推荐使用Delphi的13 个真实原因
- neo4j安装及内存分配
- Linux 常用命令 Updating
- 一图弄懂Arthas——Java故障定位神器
- 禁止Windows10系统调整屏幕分辨率的方法
- Interactive natural language question answering over knowledge graphs论文导读
热门文章
- 【numpy】20道numpy题目
- Django模型关系
- oracle数据库更新语句_20_手把手教你学Python之操作数据库
- python计算绩效工资_python实现 --工资管理系统
- 第二季4:HI_S32 SAMPLE_VENC_1080P_CLASSIC(HI_VOID)函数的分析
- java关闭一个窗口打开另一个_推开中式门窗,就像打开了另一个写意的世界…...
- 【原】git命令行查看全部分支与远程分支不同步问题
- jmeter+WebDriver:启动浏览器进行web自动化
- Babel+vscode实现APICloud开发中兼容ES6及以上代码
- 输入框设置只能输入数字