#include <vector> class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param cow_ranges int整型vector<vector<>> * @return int整型 */ int minParallelAttacks(vector<vector<int> >& cow_ranges) { // write code here const int inf = 0x3f3f3f; sort(cow_ranges.begin(), cow_ranges.end(), [](const vector<int>& a, const vector<int>& b) { return a[1] < b[1]; }); int cnt = 1; int n = cow_ranges.size(); int l = cow_ranges[0][1]; for (int i = 1; i < n; ++i) { if (l >= cow_ranges[i][0] && l <= cow_ranges[i][1]) continue; ++cnt; l = cow_ranges[i][1]; } return cnt; } };
一、题目考察的知识点
贪心
二、题目解答方法的文字分析
首先按照区间的右边界从小到大对牛进行排序,如果攻击点落在区间的范围内那么直接跳过,不在的话就更新维护一下,做为新的攻击点
三、本题解析所用的编程语言
c++