就不贴题上来了,这道题是自己想出来的,对着家直讲题有灵感,开心。
先理解题意,很简单,题很长,有点烦,就是一堆气球,不管纵向高度,只管横向长度,用一个pair来表示,这个时候在x轴上会发射一堆shots, 只要发射shots的x坐标在一个气球的x1,x2之间,就能射中气球,一个shot可以射中多个气球,求最少需要多少个shot来射完所有的气球。
咋一看有点懵逼,不知道怎么下手,有个类似的文推是会议室问题,那个是求最多的overlapping然后求出所有需要的办公室。而射击气球问题是求所有最小能cover住所有气球的个数。
我的做法是,先判断所有有overlapping的气球,把它们都从数组里删除,相当于被扎灭了,同时结果数+1, 如果遇到单个的没有重叠的,也把气球扎破,结果数+1, 一直到气球都被扎破为止,返回结果。听上去还蛮简单的,但从想法到代码,还是稍微想了15分钟的样子。
No comments:
Post a Comment