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;
    }
}

results matching ""

    No results matching ""