本文主要是介绍go排序二维数组,力扣:56. 合并区间(20ms),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.二维数组按照第一列大小排序(升序)
sort.Slice(intervals, func(i, j int) bool {return intervals[i][0] < intervals[j][0]})
2.二维数组第一列相同时,按照第二列大小排序(升序)
sort.Slice(intervals, func(i, j int) bool {if intervals[i][0] == intervals[j][0] {return intervals[i][1] < intervals[j][1]}else {return intervals[i][0] < intervals[j][0]}})
3.力扣:56. 合并区间
func merge(intervals [][]int) [][]int {ans := [][]int{}sort.Slice(intervals, func(i, j int) bool {return intervals[i][0] < intervals[j][0]})ans = append(ans,intervals[0])for i:= 1; i < len(intervals);i++ {if intervals[i][0]<=ans[len(ans)-1][1] {ans[len(ans)-1][1] = max(ans[len(ans)-1][1],intervals[i][1])}else {ans = append(ans,intervals[i])}}return ans
}
func max(a,b int) int {if a>=b {return a}return b
}func main() {intervals := [][]int{{1,3}, {2,6},{8,10},{15,18}}fmt.Println(merge(intervals))
}
这篇关于go排序二维数组,力扣:56. 合并区间(20ms)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!