假如一个数组里面有数字011001102301110023111110,如何统计如果有三个连续以上的1就进行加1呢

假如一个数组里面有数字011001102301110023111110,如何统计如果有三个连续以上的1就进行加1呢

https://zhidao.baidu.com/question/500315221.html

简单写了一下,可能会有漏洞,看看适合你不

class Pott{
        //递归计数使用
        private static int PARAM = 0;
        public static void main(String[] args){
        //int[] a = new int[]{0,1,1,0,0,1,1,0,2,3,0,1,1,1,0,0,2,3,1,1,1,1,1,0};
        int[] a = new int[]{1,1,1,2,3,1,1,1,1,1,1,2,1,2,1,1,1,2,3,1,1,2,1,1,1};
        //3个以上1出现次数
        int continuityCount = 0;
        //用作计数,连续的1个数
        int count;
        for(int i=0;i<a.length;){
            count = 1;
            PARAM = 0;
            if(1 == a[i] && i!=a.length-1){
                if(a[i] == a[i+1]){
                    count++;
                    int[] returnArr = new int[2];
                    returnArr = judge(i + 1, a, count);
                    if(returnArr[0]>2){
                        continuityCount++;
                        i = returnArr[1];
                        continue;
                    }
                    i++;
                    continue;
                }
                i++;
                continue;
            }
            i++;
        }
        System.out.println("统计次数:"+continuityCount);
    }

    private static int[] judge(int i,int[] a,int count){
        if(a[i] == a[i+1]){
            count++;
            PARAM = i+1;
            if(i+1 != a.length-1) {
                judge(i + 1, a, count);
            }
        }
        int[] returnArr = {count,PARAM};
        return returnArr;
    }
}