题目描述
解题思路:这题与435. Non-overlapping Intervals类似,但是本题是求最小的共同重叠数。
所以方法类似,只是得一直与第一个重叠的区间比较,没有和他重叠才更新prev。
解题过程中出现的问题:
- 想着跳出循环后再判断最后一个区间的情况,最后发现不需要。
class Solution {
public:
int findMinArrowShots(vector<vector<int>>& points) {
int ans = 1,n = points.size(), prev;
sort(points.begin(), points.end(), [](vector<int>& a, vector<int>& b){
return a[1]<b[1];
});
prev = points[0][1];
for(int i = 1; i < n; ++i){
if(points[i][0] > prev){
ans++;
prev = points[i][1];
}
}
return ans;
}
};
该博客讨论了一种算法问题,涉及找到一组不重叠的区间中的最小箭头数量。通过将区间按结束时间排序并迭代,可以确定每个新区间是否与前一个区间重叠。如果新区间不与前一个重叠,则需要额外的箭头,更新计数并记录新的结束时间。解题过程中注意避免对最后一个区间进行不必要的特殊处理。

被折叠的 条评论
为什么被折叠?



