436 Find Right Interval
/**
* Definition for an interval.
* public class Interval {
* int start;
* int end;
* Interval() { start = 0; end = 0; }
* Interval(int s, int e) { start = s; end = e; }
* }
*/
class Solution {
public int[] findRightInterval(Interval[] intervals) {
TreeMap<Integer, Integer> hash = new TreeMap<>();
for (int i = 0; i < intervals.length; i++){
hash.put(intervals[i].start, i);
}
int[] ans = new int[intervals.length];
for (int i = 0; i < intervals.length; i++){
Integer index = hash.ceilingKey(intervals[i].end);
ans[i] = index != null ? hash.get(index) : -1;
}
return ans;
}
}