LeetCode 1893. Check if All the Integers in a Range Are Covered

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Solution {
public:
bool isCovered(vector<vector<int>>& ranges, int l, int r) {
for (int i = l; i <= r; ++i) {
bool ans = false;
for (const auto& x : ranges)
if (x[0] <= i && i <= x[1]) {
ans = true;
break;
}
if (!ans)
return ans;
}
return true;
}
};
1
2
3
4
5
6
7
8
9
10
11
12
13
class Solution {
public:
bool isCovered(vector<vector<int>>& ranges, int left, int right) {
int n = ranges.size(), s = 0;
int diff[52] = {0};
for (auto &r : ranges) ++diff[r[0]], --diff[r[1] + 1];
for (int i = 1; i < left; ++i) s += diff[i];
for (int i = left; i <= right; ++i)
if ((s += diff[i]) == 0)
return false;
return true;
}
};