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;
}