题解 | #牛群的协作# 贪心

牛群的协作

https://www.nowcoder.com/practice/c065b35c5cff41429edbd6484096d708

知识点

贪心

思路

按照右端点排序,并维护上一次的攻击的地点,如果攻击地点在区间范围内,则可以不处理;否则把当前段的右端点设置为新的攻击地点,这样可以更多的攻击到后面的牛。

由于要排序,时间复杂度为O(nlogn)

AC Code(C++)

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param cow_ranges int整型vector<vector<>> 
     * @return int整型
     */
    int minParallelAttacks(vector<vector<int> >& cow_ranges) {
        sort(cow_ranges.begin(), cow_ranges.end(), [](vector<int>& a, vector<int>& b) {
            return a[1] < b[1];
        });
        int n = cow_ranges.size();
        int last = cow_ranges[0][1], res = 1;
        for (int i = 1; i < n; i ++) {
            if (last >= cow_ranges[i][0] and last <= cow_ranges[i][1]) continue;
            res += 1;
            last = cow_ranges[i][1];
        }
        return res;
    }
};

全部评论

相关推荐

10-30 10:16
南京大学 Java
龚至诚:给南大✌️跪了
点赞 评论 收藏
分享
11-08 13:58
门头沟学院 Java
程序员小白条:竟然是蓝桥杯人才doge,还要花钱申领的offer,这么好的公司哪里去找
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务