判断left,right是否在区间内,若在的话,将left的值用区间最右端的数加一覆盖,right的值用区间最左端的数减一覆盖,若有right<left,则表示left和right相遇,left和right之间的数均包含在所给区间内,返回true。若区间遍历结束仍未相遇,则返回false。
代码如下:
class Solution {
public boolean isCovered(int[][] ranges, int left, int right) {
int l=left,r=right;
for (int i=0;i<ranges.length;i++)
{
if(left>=ranges[i][0] && left<=ranges[i][1]){//若left在此区间内
left=ranges[i][1]+1;//left记录未被包含在内的最左值
}
if(right>=ranges[i][0] && right<=ranges[i][1]){//若区间right在此区间内
right=ranges[i][0]-1;//right记录未被包含在内的最右值
}
if(right<left){
return true;//left和right相遇,全部包含
}
}
return false;
}
}
但是一提交吧,显示如下:104/105 !-!
有没有大佬救救,看一下哪里有问题吗