leetcode[452] Minimum Number of Arrows to Burst Balloons
程序员文章站
2022-06-03 14:42:06
...
问题:
输入:气球坐标
输出:射箭数
思路:贪心规则
先以左边坐标对气球进行排序,然后,从最后一个气球开始,每次将箭放在左边坐标,将能够射掉的气球从数组中删除,直到气球全被射掉。
代码:
class Solution {
public:
int findMinArrowShots(vector<vector<int>>& points) {
sort(points.begin(),points.end());
int sorts=0;
int n=points.size();
int i=n-1;
while(i>=0)
{
sorts++;
int sort=points[i][0];
while(i>0&&points[i-1][1]>=sort)
{
i--;
}
--i;
}
return sorts;
}
};
复杂度分析:时间复杂度为O(nlogn),空间复杂度为O(1).