2023-12-7

1,用最少数量的箭引爆气球

先按照初始位置进行排序;

开始循环,当两个气球没有挨着的时候,count++;当两个气球挨着的时候更新最右边界的位置。

2,无重叠区间

这道题与弓箭射气球的题类似,程序几乎可以不发生改变,只有判断条件加上等于,认为,1,2和2,3不算在里面,弓箭的数量相当于是非交叉区间的数量,用总的减去弓箭数量就是最终的结果。

3,划分字母区间

先记录下来每一个字母的最远位置,用和之前定义26为的int数组,再填进去一样的方法;然后进行遍历,得到从开始遍历到现在所记录到的最远位置,如果与当前遍历的索引已知,就截出这一段。list.add记录下来。参考了代码随想录

4,合并区间

与射箭一样判断有没有重叠,再合并,其实就是用合并区间后左边界和右边界,作为一个新的区间,加入到result数组里就可以了。如果没有合并就把原区间加入到result数组。

list.getLast:得到最后一个,remove去掉,add加入;

5,单调递增的数字

从后向前遍历,如果这个数字小于前面的,久让前面的-1,start记录下当前索引;再遍历一遍,将从start到最后的值都赋值9;如果直接在第一遍遍历中就把赋值9写进去的话,就会出现问题,比如100,答案就会是90,而不是99了。因此,要循环两遍;

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值