leetcode57.插入区间
模拟类型的题目,首先是要找到新插入区间融合进来后的起始点,如果新区间起始点在当前区间范围或者比这个范围还小则视为找到了起始点;然后是寻找融入进来区间的右边界,有边界是只有新区件右边界比当前区间的右端点或者左端点还要小才视为找到
class Solution {public int[][] insert(int[][] intervals, int[] newInterval) {List<int[]> result = new ArrayList<>();boolean findStart = false, findEnd = false;int start=0, end=0;for (int[] interval : intervals) {if (!findStart) {if (newInterval[0] < interval[0]) {findStart = true;start = newInterval[0];} else if (newInterval[0] <= interval[1]) {findStart = true;start = interval[0];}}if (!findEnd) {if (newInterval[1] < interval[0]) {findEnd = true;end = newInterval[1];result.add(new int[]{start, end});} else if (newInterval[1] <= interval[1]) {findEnd = true;end = interval[1];result.add(new int[]{start, end});continue;}}if (!findStart || findEnd) {result.add(interval);}}if(!findStart)result.add(newInterval);else if(!findEnd)result.add(new int[]{start, newInterval[1]});return result.toArray(new int[0][0]);}
}