LeetCode #56 Merge Intervals

題目鏈接:https://leetcode.com/problems/merge-intervals/
在這裏插入圖片描述
思路:排序後,遍歷一遍數組操作

import "sort"

type myvalue2 [][]int

func (p myvalue2) Len() int {
	return len(p)
}

func (p myvalue2) Less(i, j int) bool {
    if p[i][0] == p[j][0]{
        return p[i][1] < p[j][1]
    }
    return p[i][0] < p[j][0]
}

func (p myvalue2) Swap(i, j int) {
	p[i], p[j] = p[j], p[i]
}


func merge(intervals [][]int) [][]int {
    sort.Sort(myvalue2(intervals))
    res := [][]int{}
    for _, v := range intervals{
        if len(res) == 0 || v[0] > res[len(res)-1][1]{
            res = append(res, v)
        }else if v[1] > res[len(res)-1][1]{
            res[len(res)-1][1] = v[1]
        }
    }
    return res
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章