题解 | #牧场奶牛集合区域# java

牧场奶牛集合区域

https://www.nowcoder.com/practice/89218acf98234315af1cb3a223935318

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param groups int整型一维数组
     * @param n int整型
     * @return int整型二维数组
     */
    public int[][] findGatheringAreas (int[] groups, int n) {
        // write code here
        List<List<Integer>> res = new ArrayList<>();
        int last = groups[0];
        for (int i = 1; i < n; i++) {
            if (groups[i] - groups[i - 1] == 1) continue;
            List<Integer> area = new ArrayList<>();
            area.add(last);
            area.add(groups[i - 1]);
            res.add(area);
            last = groups[i];
        }
        List<Integer> area = new ArrayList<>();
        area.add(last);
        area.add(groups[n - 1]);
        res.add(area);

        int[][] result = new int[res.size()][2];
        for (int i = 0; i < res.size(); i++) {
            for (int j = 0; j < 2; j++) {
                result[i][j] = res.get(i).get(j);
            }
        }

        return result;
    }
}

该代码使用的编程语言是Java

该题考察的知识点是数组遍历和条件判断。

代码的文字解释如下:

  1. 首先,给定一个整数型的数组 groups 和一个整数 n
  2. 函数 findGatheringAreas 的作用是找到聚集区域的边界。
  3. 首先,创建一个二维整数型的向量 res,用于存储聚集区域的边界。
  4. 初始化变量 last 为数组 groups 的第一个元素。
  5. 从数组的第二个元素开始遍历,对于每个元素 groups[i]:如果当前元素减去前一个元素等于1,则说明聚集区域还在延伸,跳过当前循环。否则,将上一个聚集区域的起始位置 last 和当前元素 groups[i-1] 作为一个边界,添加到二维向量 res 中,并更新 last 的值为当前元素。
  6. 最后,将最后一个聚集区域的起始位置 last 和最后一个元素 groups[n-1] 作为一个边界,添加到二维向量 res 中。
  7. 返回存储了聚集区域边界的二维向量 res
全部评论

相关推荐

07-11 11:10
门头沟学院 Java
请问各位大三兄弟们跟hr说多久实习时间到时候可以提前跑路吗?
程序员小白条:问就是六个月以上,可以一年,实习都这样,你入职后想跑就跑
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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