package main

import . "nc_tools"
import	"sort"

/*
 * type Interval struct {
 *   Start int
 *   End int
 * }
 */

/**
 *
 * @param intervals Interval类一维数组
 * @return Interval类一维数组
 */
func merge( intervals []*Interval ) []*Interval {
    if len(intervals)<2{return intervals}
    sort.Slice(intervals,func(i, j int) bool{
        if intervals[i].Start==intervals[j].Start{
            return intervals[i].End<intervals[j].End
        }
        return intervals[i].Start<intervals[j].Start
    })
    result:=[]*Interval{intervals[0]}
    for i:=1;i<len(intervals);i++{
        if intervals[i].Start>result[len(result)-1].End{
            result=append(result, intervals[i])
        }else{
            if intervals[i].End>result[len(result)-1].End{
                result[len(result)-1].End=intervals[i].End
            }
        }
    }
    return result
}