Java 检查数组中大小为x的相等连续元素的更好方法? publicstaticvoidmain(字符串[]args){ int[]a={0,0,1,1,1,1,1,0,0}; int[]b={0,0,1,0,1,1,1,0,0}; System.out.println(连续相等大小(a,5)); System.out.println(连续相等大小(b,5)); System.out.println(连续相等大小(b,3)); } 公共静态布尔连续QUALOFSIZE(int[]a,int size){ 整数计数=0; 布尔标志=假; for(int i=0;i

Java 检查数组中大小为x的相等连续元素的更好方法? publicstaticvoidmain(字符串[]args){ int[]a={0,0,1,1,1,1,1,0,0}; int[]b={0,0,1,0,1,1,1,0,0}; System.out.println(连续相等大小(a,5)); System.out.println(连续相等大小(b,5)); System.out.println(连续相等大小(b,3)); } 公共静态布尔连续QUALOFSIZE(int[]a,int size){ 整数计数=0; 布尔标志=假; for(int i=0;i,java,arrays,methods,integer,Java,Arrays,Methods,Integer,主方法中的代码打印“真、假、真”。我是一名编程新手,想了解一些技巧从第二个元素开始循环。您只需比较当前元素和上一个元素即可计算重复项。如果您得到所需的计数,请立即返回。差不多 public static void main(String[] args) { int[] a = { 0, 0, 1, 1, 1, 1, 1, 0, 0 }; int[] b = { 0, 0, 1, 0, 1, 1, 1, 0, 0 }; System.out.p

主方法中的代码打印“真、假、真”。我是一名编程新手,想了解一些技巧

从第二个元素开始循环。您只需比较当前元素和上一个元素即可计算重复项。如果您得到所需的计数,请立即返回。差不多

public static void main(String[] args) {

        int[] a = { 0, 0, 1, 1, 1, 1, 1, 0, 0 };

        int[] b = { 0, 0, 1, 0, 1, 1, 1, 0, 0 };

        System.out.println(consecutiveEqualofSize(a, 5));
        System.out.println(consecutiveEqualofSize(b, 5));
        System.out.println(consecutiveEqualofSize(b, 3));
    }

    public static boolean consecutiveEqualofSize(int[] a, int size) {
        int count = 0;
        boolean flag = false;
        for (int i = 0; i < a.length; i++) {
            if (flag) {
                break;
            }
            if (a[i] == 1) {
                for (int j = i; j < i + size; j++) {
                    if (j == a.length - 1)
                        break;
                    if (a[j] == 1) {
                        count++;
                    } else {
                        count = 0;
                        break;
                    }
                    if (count == size)
                        flag = true;
                }
            }
        }
        return flag;
    }
public静态布尔连续QUALOFSIZE(int[]a,int size){
整数计数=0;
for(int i=1;i=大小-1){
返回true;
}
}否则{
计数=0;
}
}
返回false;
}

通过比较当前元素和前一个元素,可以简化代码。如果它们匹配,则增加计数器。如果不是,则如果计数器与传递的值匹配,则返回true,否则继续

public静态布尔连续QUALOFSIZE(int[]a,int size){
如果(a==null)返回false;
int匹配=1;
for(int i=1;i
您似乎只对连续的1感兴趣-对吗?此外,是否必须精确地
x
连续元素(以0或数组结尾终止)连续序列是否可以长于x?在你的例子中,它们是精确的。正确的,只对连续的1感兴趣。最初,我在该方法背后的想法是在阵列的任何位置确认大小为x的相等连续元素。(如果它从中间开始,或者接近末端)。连续元素可以比x长,我只是集成了int大小来演示一个布尔方法。
public static boolean consecutiveEqualofSize(int[] a, int size) {
    int count = 0;
    for (int i = 1; i < a.length; i++) {
        if (a[i] == a[i - 1]) {
            count++;
            if (count >= size - 1) {
                return true;
            }
        } else {
            count = 0;
        }
    }
    return false;
}