452. 用最少数量的箭引爆气球
程序员文章站
2024-03-08 23:54:23
...
题解:
class Solution {
public:
int findMinArrowShots(vector<vector<int>>& points) {
if(points.size() <= 0) {
return 0;
}
const auto& cmp = [](const vector<int>& v1, const vector<int>& v2) {
return v1[1] < v2[1];
};
//按照右边界从小到大排序
sort(points.begin(), points.end(), cmp);
int i = 0;
int cnt = 0;
for(; i < points.size();) {
// 取得需要比较的右边界
int cmp = points[i][1];
++i;
for(; i < points.size();) {
// 判断左边界是否小于cmp,表示都可以在一次引爆
if(points[i][0] <= cmp) {
++i;
} else {
break;
}
}
// 增加数量
++cnt;
}
return cnt;
}
};