题解 | #牧场奶牛集合区域#
牧场奶牛集合区域
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就是总共求的区域总数,也就是返回的二维数组的行数