首页 > 技术文章 > leetcode 1893

yu-xia-zheng-ye 2021-07-23 20:41 原文

记录一下每日一题。

 

 

 

 //

 1 class Solution {
 2     public boolean isCovered(int[][] ranges, int left, int right) {
 3         int[] tags = new int[51];
 4         for(int i = 0; i < 51; i++){
 5             tags[i] = 0;
 6         }
 7         for(int i = 0; i < ranges.length; i++){
 8             int start = ranges[i][0];
 9             int end = ranges[i][1];
10             for(int j = start; j <= end; j++){
11                 tags[j]++;
12             }
13         }
14         boolean ret = true;
15         for(int i = left; i <= right; i++){
16             if(tags[i] < 1){
17                 ret = false;
18                 break;
19             }
20         }
21         return ret;
22     }
23 }

 

个人觉得,官方题解是好一点,但麻烦了不少。

顺便记录一下官方题解

 1 class Solution {
 2     public boolean isCovered(int[][] ranges, int left, int right) {
 3         int[] diff = new int[52];
 4         for(int[] range : ranges){
 5             ++diff[range[0]];
 6             --diff[range[1] + 1];
 7         }
 8         int cur = 0;
 9         for(int i = 1; i <= 50; i++){
10             cur += diff[i];
11             if(i >= left && i <= right && cur < 1){
12                 return false;
13             }
14         }
15         return true;
16     }
17 }

 

 

20210723

 

推荐阅读