2023.8.2
本题思路先将二维数组points按照第一个维度排序, 然后初始化射箭数为1,因为题中提示说了最少有一个气球。 在遍历这些气球,看是否有重叠,如果没有重叠区域,射箭数++;如果有重叠区域,更新右边气球的右边界,这里需要具体看代码自己体会:
class Solution {
public:static bool cmp(vector<int>&a , vector<int>&b){return a[0] < b[0];}int findMinArrowShots(vector<vector<int>>& points) {sort(points.begin(),points.end(),cmp);int ans = 1;for(int i=1; i<points.size(); i++){if(points[i][0] > points[i-1][1]){ans++;}else{points[i][1] = min(points[i][1],points[i-1][1]);}}return ans;}
};