295. 交集
给定两个排序后的区间序列,序列内每个区间两两互不相交,返回两个序列相交的区间的下标
样例
输入: a = [[0,3], [7,10]] , b = [[-1,1],[2,8]]
输出: ans = [[0,0],[0,1],[1,1]]
注意事项
-
1<= len(a),len(b)<=1e51<=len(a),len(b)<=1e5
-
abs(max(a))<=1e9abs(max(a))<=1e9
public class Solution {
/**
* @param a: first sequence
* @param b: second sequence
* @return: return ans
*/
public List<List<Integer>> Intersection(List<List<Integer>> a, List<List<Integer>> b) {
// write your code here
int i = 0, j = 0;
List<List<Integer>> result = new ArrayList<>();
while (i < a.size() && j < b.size()) {
if (a.get(i).get(0) > b.get(j).get(1)) {
j++;
} else if (a.get(i).get(1) < b.get(j).get(0)) {
i++;
} else {
List<Integer> integers = new ArrayList<>();
integers.add(i);
integers.add(j);
result.add(integers);
if (a.get(i).get(1) < b.get(j).get(1)) {
i++;
} else if (a.get(i).get(1) > b.get(j).get(1)) {
j++;
} else {
i++;
j++;
}
}
}
return result;
}
}