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
该题考察的知识点是数组遍历和条件判断。
代码的文字解释如下:
- 首先,给定一个整数型的数组
groups和一个整数n。 - 函数
findGatheringAreas的作用是找到聚集区域的边界。 - 首先,创建一个二维整数型的向量
res,用于存储聚集区域的边界。 - 初始化变量
last为数组groups的第一个元素。 - 从数组的第二个元素开始遍历,对于每个元素
groups[i]:如果当前元素减去前一个元素等于1,则说明聚集区域还在延伸,跳过当前循环。否则,将上一个聚集区域的起始位置 last 和当前元素 groups[i-1] 作为一个边界,添加到二维向量 res 中,并更新 last 的值为当前元素。 - 最后,将最后一个聚集区域的起始位置
last和最后一个元素groups[n-1]作为一个边界,添加到二维向量res中。 - 返回存储了聚集区域边界的二维向量
res。

京公网安备 11010502036488号