Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- O(n+m) solution
- class Solution {
- public:
- bool isCovered(vector<vector<int>>& ranges, int left, int right) {
- int line[52] = {};
- for(auto &r : ranges) {
- line[r[0]] += 1;
- line[r[1] + 1] -= 1;
- }
- for(int i = 1, overlaps = 0; i <= right; ++i) {
- overlaps += line[i];
- if (i >= left && overlaps == 0)
- return false;
- }
- return true;
- }
- };
- -----------
- O(nlogn) solution, when range is very large.
- public boolean isCovered(int[][] ranges, int left, int right) {
- Arrays.sort(ranges, (x,y)->x[0]-y[0]);
- for(int[] range: ranges)
- if(left >= range[0] && left <= range[1])
- left = range[1] + 1;
- return left > right;
- }
Add Comment
Please, Sign In to add comment