leetcode第57题插入的区间
体会:
- 我真的感觉这个题目没有出的很好,应该是对特殊情况的一种检验吧,我如果给一个非常大的区间,这时候感觉就不呢个进行合并了
func min(a, b int) int {
if a < b { return a }
return b
}
func max(a, b int) int {
if a > b { return a }
return b
}
func insert(intervals [][]int, newInterval []int) [][]int {
res := make([][]int, 0)
l := len(intervals)
i := 0
for i < l && intervals[i][1] < newInterval[0] {
res = append(res, intervals[i])
i++
}
for i < l && intervals[i][0] <= newInterval[1] {
newInterval[0] = min(newInterval[0], intervals[i][0])
newInterval[1] = max(newInterval[1], intervals[i][1])
i++
}
res = append(res, newInterval)
for i < l {
res = append(res, intervals[i])
i++
}
return res
}
func insert(intervals [][]int, newInterval []int) [][]int {
res := [][]int{}
len := len(intervals)
start := newInterval[0]
end := newInterval[1]
i := 0
for i < len && intervals[i][1] < start{
res = append(res, intervals[i])
i++
}
for i < len && intervals[i][0] <= start {
intervals[i][0] = min(intervals[i][0],start)
intervals[i][1] = max(intervals[i][1],end)
}
res = append(res, intervals[i])
i++
for i < len {
res = append(res, intervals[i])
}
return res
}
func min(a,b int) int {
if a < b {
return a
}
return b
}
func max(a,b int) int {
if a < b {
return b
}
return a
}