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

牧场奶牛集合区域

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

知识点

数组,排序

解题思路

先将数组按照升序排序,用start和end来分别存储每次保存的开始位置和结束位置。

在循环中如果遇到当前数不等于上一个数加一的,表示需要存储start和end了;如果等于就更新end的位置。

在结束完循环需要注意要再保存一次start和end,因为循环到最后还没保存最后一次结果。

Java题解

import java.util.*;


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

全部评论

相关推荐

02-05 08:49
已编辑
武汉大学 Web前端
野猪不是猪🐗:36k和36k之间亦有差距,ms的36k和pdd的36k不是一个概念
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务