欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

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

时间:2023-04-27



蛮搞笑的,运行多次居然效率变高了!!!!
给你一个二维整数数组 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 <= 501 <= starti <= endi <= 501 <= left <= right <= 50

Code:

class Solution {public: bool isCovered(vector>& ranges, int left, int right) { bool ret=false; sort(ranges.begin(),ranges.end()); int count=0; for(int i=left;i<=right;i++) { for(int j=0;jvec=ranges[j]; sort(vec.begin(),vec.end()); if(vec[0]<=i&&vec[vec.size()-1]>=i) { count++; break; } } } cout<

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。