題目來(lái)源
這道題感覺不難,先排個(gè)序,然后從左向右掃描,保存掃描過(guò)的氣球最大左邊界和最小右邊界,當(dāng)最大左邊界小于最小右邊界時(shí),需要射一箭。
class Solution {
public:
int findMinArrowShots(vector<pair<int, int>>& points) {
sort(points.begin(), points.end());
int n = points.size(), res = 0;
for (int i=0; i<n; i++) {
int left_max = points[i].first, right_min = points[i].second;
while (left_max <= right_min) {
i++;
left_max = max(left_max, points[i].first);
right_min = min(right_min, points[i].second);
}
i--;
res++;
}
return res;
}
};