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

一、题目:检查是否区域内所有整数都被覆盖

1、描述

给你一个二维整数数组 ranges 和两个整数 leftright。每个 r a n g e s [ i ] = [ s t a r t i , e n d i ] ranges[i] = [start_{i}, end_{i}] ranges[i]=[starti,endi] 表示一个从 s t a r t i start_{i} starti e n d i end_{i} endi 的闭区间。如果闭区间 [ l e f t , r i g h t ] [left, right] [left,right] 内每个整数都被 r a n g e s ranges ranges 中至少一个区间覆盖,那么请你返回 t r u e true true,否则返回 f a l s e false false
已知区间 r a n g e s [ i ] = [ s t a r t i , e n d i ] ranges[i] = [start_{i}, end_{i}] ranges[i]=[starti,endi],如果整数 x x x 满足 s t a r t i ≤ x ≤ e n d i start_{i} \leq x \leq end_{i} startixendi,那么我们称整数 x x x覆盖

2、提示

  • 1 <= ranges.length <= 50
  • 1 <= starti <= endi <= 50
  • 1 <= left <= right <= 50

3、示例

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

二、解题

1、思路

  1. 因为 ≤ l e f t ≤ r i g h t ≤ 50 \leq left \leq right \leq 50 leftright50 (50是比较小的数),可以声明一个大小 51 51 51 0 0 0 的记录数组resres 的下标就表示闭区间 [ l e f t , r i g h t ] [left, right] [left,right] 中间的整数,res的值为value, value = 1表示该整数存在,value = 0,则表示该整数不存在。

  2. foreach() 方法遍历二维数组 ranges,得到每一个一维数组 range。用Arrays.fill()方法将res[range[0]]res[range[0]+1]value 置为 1 1 1

  3. x x x [ l e f t , r i g h t ] [left, right] [left,right]之间的数,如果 res[x] == 1,则表示 x x x覆盖

2、代码

class Solution {
    public boolean isCovered(int[][] ranges, int left, int right) {
        int[] res = new int[51];
        for(int[] range:ranges){
            Arrays.fill(res,range[0],range[1]+1,1);
        }
        for(int j=left;j<=right;j++){
            if(res[j]!=1) 
                return false;
        }
        return true;
    }
}

三、结果

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值