自学算法之求一个数列中的最大连续数字串的开始数字和和长度

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_37014990/article/details/82593250

这里写图片描述

    public static void main(String[] args) {
        int[] arr = {1, 3, 4, 6, 7, 8, 9, 11};
        method(arr);
    }

    public static void method(int[] arr) {
        // 参数检查
        if(arr == null) return ;
        // 全局连续数字最大
        int sumNum = 1;
        // 局部连续数字最大
        int sumPart = 1;
        int start = 0;
        for(int i = 1; i < arr.length; i++) {
            if(arr[i - 1] + 1 == arr[i]) {
                sumPart++;
                start = i;
            } else {
                if(sumNum < sumPart) {
                    sumNum = sumPart;
                }
                // 初始局部连续计数
                sumPart = 1;
            }
        }
        if(arr.length == sumPart) sumNum = sumPart;
        System.out.println("[" + arr[start - sumNum + 1] + ", " + sumNum + "]");
    }

猜你喜欢

转载自blog.csdn.net/qq_37014990/article/details/82593250