package main import ( // "fmt" . "nc_tools" "sort" ) /* * type Interval struct { * Start int * End int * } */ /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param intervals Interval类一维数组 * @return Interval类一维数组 */ func merge( intervals []*Interval ) []*Interval { // write code here if len(intervals) == 0 { return intervals } sort.Slice(intervals, func(i, j int) bool { if intervals[i].Start < intervals[j].Start { return true } return false }) var res [] *Interval tmp := intervals[0] for i:=1;i<len(intervals);i++ { if intervals[i].Start <= tmp.End && intervals[i].End <= tmp.End{ continue }else if intervals[i].Start <= tmp.End && intervals[i].End >= tmp.End{ tmp.End = intervals[i].End } else { res = append(res, tmp) tmp = intervals[i] } } res = append(res, tmp) return res }