https://leetcode.com/problems/find-right-interval/?tab=Description
给出一组区间,找当前区间右边区间在数组中的位置。
用TreeMap,放进去的是start以及该interval所在位置,找end的ceiling,将所在位置赋值非对应的res
public class Solution {
public int[] findRightInterval(Interval[] intervals) {
int[] res = new int[intervals.length];
TreeMap<Integer, Integer> map = new TreeMap();
for (int i = 0; i < intervals.length; i++) {
map.put(intervals[i].start, i);
}
for (int i = 0; i < intervals.length; i++) {
Map.Entry<Integer, Integer> e = map.ceilingEntry(intervals[i].end);
res[i] = (e == null ? -1 : e.getValue());
}
return res;
}
}
转载请注明原文地址: https://ju.6miu.com/read-6473.html