8.7 代码随想录算法训练营第三十天| 452. 用最少数量的箭引爆气球 、435. 无重叠区间、763.划分字母区间

一、452. 用最少数量的箭引爆气球

可以看成公共区间集合数量,即求最少数量的不重叠区间集合来覆盖所有区间:

初始的想法是排序后遍历相邻两区间的头值和尾值,若后区间头值大于前区间尾值则res++,但发现并不能得出正确结果。

推导后会发现,如测试集为:points = [[10,16],[2,8],[1,6],[7,12]],排序后有:

points = [[1,6],[2,8],[7,12],[10,16]],按以上方法会发现[7,12]会连接points[1]和Points[3],导致结果是一个大区间,但实际上point[0]和points[1]并不相交,故此方法存在错误。

正确做法是定义一个尾值end,来遍历维护尾值。

二、435. 无重叠区间

所求值和上题相反:

三、763.划分字母区间

用哈希表记录每个值出现的最远处,之后再遍历比较是否等于最远处的值,是的话用所处位置减去首位置,即为这段字符串的大小:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值