题解 | #牧场奶牛集合区域#
牧场奶牛集合区域
https://www.nowcoder.com/practice/89218acf98234315af1cb3a223935318?tpId=354&tags=&title=&difficulty=0&judgeStatus=0&rp=0&sourceUrl=%2Fexam%2Foj
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param groups int整型一维数组
* @param n int整型
* @return int整型二维数组
*/
public int[][] findGatheringAreas (int[] groups, int n) {
// write code here
// 给定一个无重复元素的有序整数数组groups
int count = 1;
for (int i = 1; i < n; i++) {
if (groups[i] != groups[i - 1] + 1) {
count++;
}
}
System.out.print(count);
int[][] res = new int[count][2];;
res[0][0] = groups[0];
int index = 0;
for (int i = 1; i < n; i++) {
if (groups[i] != groups[i - 1] + 1) {
res[index++][1] = groups[i - 1];
res[index][0] = groups[i];
}
}
res[index][1] = groups[groups.length - 1];
return res;
}
}
通过遍历找到断点,断点左边就是上个区域右边界,断点就是下个区域的开始。
通过遍历找到有几个断点,断点数量加1就是总共求的区域总数,也就是返回的二维数组的行数

