任务:给定一个int数组,如果值3在数组中出现正好3次,则返回true,并且没有3是彼此相邻的,否则返回false。
这是我目前的代码:
public static boolean contains(int[] arr, int item) {
for (int n : arr) {
if (item == n) {
return true;
}
}
return false;
答案 0 :(得分:1)
您应该迭代数组并计算项目数组的次数。此外,您需要跟踪上一个项目是否是您要查找的项目。 E.g:
public static boolean contains(int[] arr, int item) {
int count = 0;
boolean prev = false;
for (int n : arr) {
if (n == item) {
if (prev) {
return false;
}
++count;
prev = true;
if (count > 3) { // Optimization - could be removed
return false;
}
} else {
prev = false;
}
}
return count == 3;
}
答案 1 :(得分:0)
这很简单。请查看代码中的以下修订:
osValue.call(appropriateValueForThisGoesHere);
答案 2 :(得分:0)
public static boolean contains(int[] arr, int item) {
// Count of number of occurences
int count=0;
for (int i = 0; i < arr.length; i++) {
if(arr.length-1 == i){
if(arr[i] == item)
count++;
}else {
if (arr[i] == item && arr[i] + 1 == item)
return false;
if(arr[i] == item)
count++;
}
}
return count == 3;
}
答案 3 :(得分:-1)
public static contains(int[] arr) { int index = -2; int count = 0; for (int i = 0; i < arr.length; i++) { if (arr[i] == 3) { if (i-1 != index) { index = i; count++; } else { contains = false; break; } } if (count != 3) { contains = false; } return contains; }