题解 | #线段重合#

线段重合

https://www.nowcoder.com/practice/1ae8d0b6bb4e4bcdbf64ec491f63fc37

这边替左神宣传下【算法讲解027【必备】堆结构常见题】

你看你也会!

下面开始说思路:

设定每个线段都有l和r两个端点,

首先先给线段按l,升序排列;

(这边我使用java自带的Arrays.sort+自定义规则完成)

其次在for循环里的while循环里,从peek一下小根堆(这里面我们放r,但不是一股脑全放进去)得到一个r,看看这个r是否小于此时的l,如果是,则poll;否则什么也不干

(这里我使用java优先队列当堆)

直到堆空或没有r < l为止,我们再把这条线段的r,add进去,

最后,heap.size()和事先声明的ans取个较大者,在循环完毕后输出即可。

全部评论

相关推荐

牛客339922477号:都不用reverse,直接-1。一行。啥送分题
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务