package com.interview.books.svinterview;
import com.interview.leetcode.utils.Interval;
import java.util.Arrays;
import java.util.Comparator;
/**
* Created_By: stefanie
* Date: 14-12-5
* Time: 下午3:08
*/
public class SV2_OverlapInterval {
public static int overlapNumber(Interval[] intervals){
if (intervals.length < 2) return 0;
Comparator<Interval> comparator = new Comparator<Interval>() {
@Override
public int compare(Interval o1, Interval o2) {
if(o1 == null && o2 == null) return 0;
if(o1 == null && o2 != null) return -1;
if(o1 != null && o2 == null) return 1;
return o1.start - o2.start;
}
};
Arrays.sort(intervals, comparator);
int overlap = 0;
Interval cur = intervals[0];
for(int j = 1; j < intervals.length; j++){
if(intervals[j].start > cur.end){ //no overlap
cur = intervals[j];
} else {
overlap++;
cur.end = Math.max(cur.end, intervals[j].end);
}
}
return overlap != 0? overlap + 1: 0;
}
public static void main(String[] args){
Interval[] intervals = new Interval[4];
intervals[0] = new Interval(1,5);
intervals[1] = new Interval(10,15);
intervals[2] = new Interval(5,10);
intervals[3] = new Interval(20,30);
System.out.println(overlapNumber(intervals));
}
}