文章目录
题目
代码(7.26 首刷部分看解析)
一开始想错了,所以设置排序方式有问题,可以看我注释的那一步。
class Solution {
public:
int findMinArrowShots(vector<vector<int>>& points) {
sort(points.begin(), points.end(), [&](vector<int>& a, vector<int>& b) {
// if(a[0] == b[0]) return a[1] < b[1]; 不能有这一步,反例为:[1,4],[2,3],此时下标应该更新为3
return a[0] < b[0];
});
int index = points[0][1];
int res = 1;
for(int i = 1; i < points.size(); i++) {
if(points[i][0] > index) {
res++;
index = points[i][1];
} else {
index = min(index, points[i][1]);
}
}
return res;
}
};