记录一下每日一题。
简单题,没什么好说的。
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