题解 | #牧场奶牛集合区域# 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<int[]> res = new ArrayList<>();
        int last = groups[0];
        for (int i = 1; i < n; i++) {
            if (groups[i] - groups[i - 1] == 1) continue;
            res.add(new int[] {last, groups[i - 1]});
            last = groups[i];
        }
        res.add(new int[] {last, groups[n - 1]});

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

编程语言是Java。

该题考察的知识点主要涉及数组遍历、条件判断和二维数组操作。

代码实现了一个findGatheringAreas,接受一个整数数组groups和一个整数n作为参数。方法的目标是找到一些集会区域,并将它们以二维整数数组的形式返回。

代码逻辑如下:

  1. 初始化一个变量last,用于记录当前连续区域的起始位置。
  2. 遍历整数数组groups,从第二个元素开始,比较当前元素与前一个元素的差值是否为1,如果是1,则表示当前元素与前一个元素属于同一个连续区域,跳过当前元素。
  3. 如果当前元素与前一个元素的差值不是1,则表示当前元素是一个新的连续区域的起始位置,将起始位置和前一个元素作为一组数据添加到结果二维数组res中。
  4. 更新last为当前元素,继续遍历。
  5. 最后将最后一个连续区域的起始位置和数组末尾元素作为一组数据添加到结果数组res中。
  6. 返回结果二维数组res
全部评论

相关推荐

05-03 12:45
西南大学 Java
nsnzkv:你这项目写的内容太多了,说实话都是在给自己挖坑,就算简历过了,后面面试也难受
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务