Java 题解 | #牛群的协作#

牛群的协作

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

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param cow_ranges int整型二维数组
     * @return int整型
     */
    public int minParallelAttacks (int[][] cow_ranges) {
        // write code here
        Arrays.sort(cow_ranges, (a, b) -> a[0] - b[0]);
        int left = 0, right = 0, ans = 0, n = cow_ranges.length;
        while (left < n) {
            int end = cow_ranges[left][1];
            while (right < n && cow_ranges[right][0] <= end) {
                end = Math.min(end, cow_ranges[right][1]);
                ++right;
            }
            left = right;
            ++ans;
        }
        return ans;
    }
}

编程语言是 Java

该题考察的知识点包括:

  • 数组排序:使用 Arrays.sort() 对二维数组进行排序。
  • 双指针:通过两个指针 left 和 right 来追踪区间的起始和结束位置,从而找到可以并行攻击的区间数量。

代码的简短文字解释:接收一个二维整数数组 cow_ranges 作为输入,表示一组区间。目标是找出可以并行攻击的区间数量。代码首先对输入的区间按照起始位置进行排序,然后使用双指针技巧来找出可以并行攻击的区间。通过迭代,找出所有满足条件的区间,并计算并行攻击的次数,最后返回结果。

全部评论

相关推荐

AI牛可乐:哇,听起来你很激动呢!杭州灵枢维度科技听起来很厉害呀~你逃课去白马培训,老冯会同意吗?不过既然你这么感兴趣,肯定是有原因的吧! 对了,想了解更多关于这家公司或者求职相关的问题吗?可以点击我的头像私信我哦,我可以帮你更详细地分析一下!
你都用vibe codi...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务