题目:
https://leetcode-cn.com/problems/merge-intervals/
import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; public class _56_Merge { public static int[][] merge(int[][] intervals) { Arrays.sort(intervals, new Comparator<int[]>() { @Override public int compare(int[] o1, int[] o2) { // TODO Auto-generated method stub return o1[0] - o2[0]; } }); ArrayList<int[]> resultList = new ArrayList<int[]>(); int[] currInterval = new int[2]; currInterval[0] = intervals[0][0]; currInterval[1] = intervals[0][1]; int[] nextInterval = new int[2]; for (int i = 1; i < intervals.length; i++) { nextInterval[0] = intervals[i][0]; nextInterval[1] = intervals[i][1]; if (currInterval[0] <= nextInterval[0] && currInterval[1] >= nextInterval[0]) { currInterval[1] = Math.max(currInterval[1], nextInterval[1]); continue; } else { resultList.add(currInterval); currInterval = new int[2]; currInterval[0] = nextInterval[0]; currInterval[1] = nextInterval[1]; } } resultList.add(currInterval); int[][] result = new int[resultList.size()][2]; return resultList.toArray(result); } public static void main(String[] args) { // TODO Auto-generated method stub int[][] intervals = {{1,3},{2,6},{8,10},{15,18}}; merge(intervals); } }