Java | Leetcode Java题解之第436题寻找右区间
题目:
题解:
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;
}
}
原文地址:https://blog.csdn.net/m0_57195758/article/details/142537120
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!