假如一个数组里面有数字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;
}
}