题目:
题解:
class Solution {public int[] findRightInterval(int[][] intervals) {int n = intervals.length;int[][] startIntervals = new int[n][2];int[][] endIntervals = new int[n][2];for (int i = 0; i < n; i++) {startIntervals[i][0] = intervals[i][0];startIntervals[i][1] = i;endIntervals[i][0] = intervals[i][1];endIntervals[i][1] = i;}Arrays.sort(startIntervals, (o1, o2) -> o1[0] - o2[0]);Arrays.sort(endIntervals, (o1, o2) -> o1[0] - o2[0]);int[] ans = new int[n];for (int i = 0, j = 0; i < n; i++) {while (j < n && endIntervals[i][0] > startIntervals[j][0]) {j++;}if (j < n) {ans[endIntervals[i][1]] = startIntervals[j][1];} else {ans[endIntervals[i][1]] = -1;}}return ans;}
}