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

牧场奶牛集合区域

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
        ArrayList<ArrayList<Integer> > alls = new ArrayList<>();
        int tx = 0, ty = 0;//区间[tx, ty]
        for (int i = 0; i < groups.length; i++) {
            if (i == 0) {//第一个点就是一个区间
                tx = groups[i];
                ty = groups[i];
            } 
            else {
                if (groups[i] == ty + 1) {//当前点能和上一个区间合并
                    ty = ty + 1;
                } else {//不能合并
                    ArrayList<Integer> tmp = new ArrayList<>();
                    tmp.add(tx); tmp.add(ty);
                    alls.add(tmp);//区间加进去
                    tx = groups[i];//新开一个区间
                    ty = groups[i];
                }
            }
        }
        int tn = alls.size();
        if (tn == 0 || alls.get(tn - 1).get(0) != tx) {//最后一个区间有没有加进去
            ArrayList<Integer> tmp = new ArrayList<>();
            tmp.add(tx); tmp.add(ty);
            alls.add(tmp);
        }
        int[] res[] = new int[alls.size()][2];//转为数组
        for(int i = 0; i < alls.size(); i++){
            res[i][0] = alls.get(i).get(0);
            res[i][1] = alls.get(i).get(1);
        }
        return res;
    }
}

全部评论

相关推荐

06-17 21:57
门头沟学院 Java
白友:噗嗤,我发现有些人事就爱发这些,明明已读不回就行了,就是要恶心人
点赞 评论 收藏
分享
小浪_Coding:找硬件测试,也可兼顾软测欧, 简历还可以的 ,注意排版,项目写的有条理一点, 然后个人技能多加点, 润色好简历之后就开始沟通海投了,深圳,东莞这边做硬件相关的公司还不少, 医疗类,仪器类的都可以尝试
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务