严氏北美IT公司面试真题汇总和解答论坛
Would you like to react to this message? Create an account in a few clicks or log in to continue.

Merge Intervals MoreAdd LessGet

Go down

Merge Intervals MoreAdd LessGet Empty Merge Intervals MoreAdd LessGet

Post by Admin Sat Oct 21, 2017 4:50 pm

List<Interval> intervals=new ArrayList<>();

void add(int start, int end){
intervals.add(new Interval(start,end));
}

int get(){
if(intervals.isEmpty())return 0;
Collections.sort(intervals,new Comparator<Interval>(){
    @Override
    public int compare(Interval a,Interval b){
        return a.start-b.start;
    }
});
int coverLength=0;
Interval prev=intervals.get(0);
for(int i=1;i<intervals.size();i++){
Interval curInterval=intervals.get(i);
if(prev.end>curInterval.start){                              
    prev.end=Math.max(prev.end, curInterval.end);
}else{
coverLength+=(prev.end-prev.start);
    prev=curInterval;
}
}
coverLength+=(prev.end-prev.start);
return coverLength;
}


public static void main(String[] args) {
// TODO Auto-generated method stub
MergeIntervalsMoreAdd intervals = new MergeIntervalsMoreAdd();
intervals.add(10, 12);
       intervals.add(3, 6);
       intervals.add(8, 9);
       intervals.add(1, 5);
       int len = intervals.get();
       System.out.println(len);
}

Admin
Admin

Posts : 124
Join date : 2017-10-21

https://csinterviewquestions.forumotion.com

Back to top Go down

Back to top

- Similar topics

 
Permissions in this forum:
You cannot reply to topics in this forum