建设网站制作汉狮团队,wordpress可不可以,小型网吧网络设计方案,跨境电商热销产品排行题目
给你一个区间数组 intervals #xff0c;其中 intervals[i] [starti, endi] #xff0c;且每个 starti 都 不同 。
区间 i 的 右侧区间 可以记作区间 j #xff0c;并满足 startj endi #xff0c;且 startj 最小化 。注意 i 可能等于 j 。
返回一个由每个区…题目
给你一个区间数组 intervals 其中 intervals[i] [starti, endi] 且每个 starti 都 不同 。
区间 i 的 右侧区间 可以记作区间 j 并满足 startj endi 且 startj 最小化 。注意 i 可能等于 j 。
返回一个由每个区间 i 的 右侧区间 在 intervals 中对应下标组成的数组。如果某个区间 i 不存在对应的 右侧区间 则下标 i 处的值设为 -1 。
示例 1
输入intervals [[1,2]] 输出[-1] 解释集合中只有一个区间所以输出-1。
解
class Solution {public int[] findRightInterval(int[][] intervals) {int n intervals.length;// 这里注意是IntegerInteger[] index new Integer[n];for (int i 0; i n; i) {index[i] i;}Arrays.sort(index, (i, j) - {return intervals[i][0] - intervals[j][0];});int[] result new int[n];for (int i 0; i n; i) {int end intervals[i][1];int right search(intervals, index, end);int idx index[right];result[i] intervals[idx][0] end ? idx : -1;}return result;}public int search(int[][] intervals,Integer[] index,int target){int left 0;int right intervals.length -1;while(left right){int mid left (right - left) /2;if(intervals[index[mid]][0] target){right mid;}else{left mid1;}}return left;}
}