int count = 0;
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr.length; j++) {
if (arr[i] == arr[j] && i != j) {
return false;
}else count++;
}
} return (count == 3);
任务:给定一个表示数组大小的整数。使用整数填充数组,如果数组彼此相邻包含3次,则返回true。 此代码不能正常工作。鉴于真的如果发现重复2次。我需要三次,并且彼此相邻!! Some1可以帮我吗?!
答案 0 :(得分:5)
关于这一点:
for (int i = 0; i < arr.length - 2; i++) {
if (arr[i] == arr[i + 1] && arr[i] == arr[i + 2]) {
return true;
}
}
return false;
答案 1 :(得分:1)
使用ArrayList存储匹配数字的解决方案
int[] arryOne={1,2,3,4,4,4,5,5,5,6,6,7,7,7,8,9,9,9,19,19,19,21,21,30,45,10,10,10};
ArrayList<Integer> arryTwo=new ArrayList<Integer>();
for (int x=0;x<=arry.length-1;x++)
{
if(arryOne[x]==arryOne[x+1] && arryOne[x]==arryOne[x+2] && x!=arry.length-2)
{
arryTwo.add(arry[x]);
x=x+2;
}
}
System.out.println("The number which is repeating three times in the array is = ");
for (int valInArrayList: arryTwo)
{
System.out.print(valInArrayList + ", ");
}
答案 2 :(得分:-1)
for(int i=0;i<arr.length-2;i++){
if((arr[i]==arr[i+1])&& (arr[i]==arr[i+2])){
return true;
}
}
return false;
这样,我们只检查一次数组,这样可以提高性能。我们在这里用简单的英语做的是:&#34;检查一个数字是否等于跟随他的两个&#34;,然后我们在离开数组之前停止(这是array.length-2
的用途)< / p>
Ex:对于6个数字的数组,我们将检查
[0,1,2]
[1,2,3]
[2,3,4]
[3,4,5]