FB 电面 寻找两个区间表的交集

双指针

public List commonOnlineInterval(List a, List b){
        int i = 0, j =0;
        List res = new ArrayList();
        while(i= b.get(j).end)j++;
            else if(b.get(j).start >= a.get(i).end) i++;
            else if(a.get(i).start < b.get(j).end){
            res.add(new Interval(Math.max(a.get(i).start,b.get(j).start),Math.min(a.get(i).end,b.get(j).end)));
            j++;
            }
            else if(b.get(j).start < a.get(i).end){
            res.add(new Interval(Math.max(a.get(i).start,b.get(j).start),Math.min(a.get(i).end,b.get(j).end)));
            i++;
            }
        }
        return res;
    }

你可能感兴趣的:(FB 电面 寻找两个区间表的交集)