leetcode第57题插入的区间

这篇博客讨论了LeetCode第57题的解题思路,主要涉及如何合并插入的区间。作者提供了两种不同的实现方法,并指出当插入的区间过大时可能无法进行合并的问题。代码中定义了辅助函数min和max用于比较和取值,并展示了如何遍历和更新区间以达到合并的效果。
摘要由CSDN通过智能技术生成

leetcode第57题插入的区间

体会:

  1. 我真的感觉这个题目没有出的很好,应该是对特殊情况的一种检验吧,我如果给一个非常大的区间,这时候感觉就不呢个进行合并了
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
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值