class Solution {
public int[][] insert(int[][] intervals, int[] newInterval) {
List<int[]> res=new ArrayList<>();
int n=intervals.length,cur=0;
while(cur<n && intervals[cur][1] < newInterval[0]){
res.add(intervals[cur++]);
}
while(cur<n && intervals[cur][0] <=newInterval[1]){
newInterval[0]=Math.min(newInterval[0],intervals[cur][0]);
newInterval[1]=Math.max(newInterval[1],intervals[cur][1]);
++cur;
}
res.add(newInterval);
while(cur<n){
res.add(intervals[cur++]);
}
return res.toArray(new int[0][]);
}
}
code2:
class Solution {
public int[][] insert(int[][] intervals, int[] newInterval) {
List<int[]> res=new ArrayList<>();
int n=intervals.length,cur=0,temp=0;
for(int i=0;i<n;i++){
if(intervals[i][1] < newInterval[0]){
res.add(intervals[i]);
cur++;
}else if(intervals[i][0] >newInterval[1]){
if(temp==0){
res.add(newInterval);
temp--;
}
res.add(intervals[i]);
}else{
newInterval[0]=Math.min(newInterval[0],intervals[i][0]);
newInterval[1]=Math.max(newInterval[1],intervals[i][1]);
}
}
if(cur==n )
res.add(newInterval);
return res.toArray(new int[0][]);
}
}
相关文章
- 11-25LeetCode(57):插入区间
- 11-2530. 插入区间
- 11-25Leetcode练习(Python):数组类:第57题:给出一个无重叠的 ,按照区间起始端点排序的区间列表。 在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合
- 11-25LeetCode-057-插入区间
- 11-25LeetCode57 -- 插入区间
- 11-25BZOJ3065 带插入区间K小值
- 11-25【洛谷4278】带插入区间K小值(块状链表+值域分块)
- 11-2556. Merge Intervals 57. Insert Interval *HARD*
- 11-25牛客练习赛91 C.魔法学院(hard version) (dsu区间染色)
- 11-25#57插入区间hard