package com.interview.books.question300;
import com.interview.leetcode.utils.Interval;
import java.util.Arrays;
import java.util.Comparator;
/**
* Created_By: stefanie
* Date: 14-12-15
* Time: 上午10:59
*/
public class TQ4_IntervalMaxOverlap {
static Comparator<Interval> comparator = new Comparator<Interval>() {
@Override
public int compare(Interval o1, Interval o2) {
return o1.start - o2.start;
}
};
public int maxOverlap(Interval[] intervals){
if(intervals.length == 0) return 0;
Arrays.sort(intervals, comparator);
int maxOveralp = 0;
int maxEnd = intervals[0].end;
for(int i = 1; i < intervals.length; i++){
int overlap = Math.min(maxEnd, intervals[i].end) - intervals[i].start;
maxOveralp = Math.max(maxOveralp, overlap);
maxEnd = Math.max(maxEnd, intervals[i].end);
}
return maxOveralp;
}
public static void main(String[] args){
TQ4_IntervalMaxOverlap finder = new TQ4_IntervalMaxOverlap();
Interval[] intervals = new Interval[5];
intervals[3] = new Interval(1,5);
intervals[2] = new Interval(3,4);
intervals[0] = new Interval(4,11);
intervals[1] = new Interval(5,8);
intervals[4] = new Interval(7,11);
System.out.println(finder.maxOverlap(intervals));
}
}