1. 程式人生 > 其它 >區間合併1.合併給定陣列區間

區間合併1.合併給定陣列區間

技術標籤:演算法-陣列leetcodejava演算法

步驟就是先按照陣列的左端點來排序,然後遍歷排好序的陣列,挨個合併,如果當前區間的左端點大於結果陣列中最後一個區間的右端點,則把這個區間新增到結果陣列中,如果小於,則合併他倆。
最好返回list的陣列形式list.toArray()就是返回一個數組形式的list,如果不加引數是返回一個object型別的值,如果加了引數是返回引數型別的陣列。

import java.util.Arrays;
import java.util.ArrayList;
class Solution {
    public int[][] merge(int[
][] intervals) { if(intervals==null || intervals.length==0)return new int[0][2]; Arrays.sort(intervals,(int[] a,int[] b)->{return a[0]-b[0];}); ArrayList<int[]> res=new ArrayList<int[]>(); res.add(intervals[0]); for(int i=1;i<intervals.length;i++)
{ if(intervals[i][0]>res.get(res.size()-1)[1]){ res.add(intervals[i]); }else{ int l=Math.min(intervals[i][0],res.get(res.size()-1)[0]); int r=Math.max(intervals[i][1],res.get(res.size()-1)[1]); int[] arr=new int[
]{l,r}; res.set(res.size()-1,arr); } } return res.toArray(new int[res.size()][]); } }