Я написал коды для следующего вопроса, но результат не так, как ожидалось. Я не знаю, что-то не так с моим кодом. Логика кажется прекрасной. Может ли кто-нибудь увидеть, если что-то не так с моим кодом.Логика относительно вычитания и сравнения элементов массива
Учитывая массив отсортированных в порядке возрастания, верните true, если массив содержит 3 смежных оценки, которые отличаются друг от друга не более чем на 2, например, с {3, 4, 5} или {3, 5, 5 }.
Мой исходный код выглядит следующим образом:
public boolean scoresClump(int[] scores) {
boolean result = false;
for(int i=0; i<scores.length-2; i++){
if((scores[i+1]-scores[i])<=2 && (scores[i+2]-scores[i+1])<=2){
result = true;
break;
}
}
return result;
}
This ссылка на этот вопрос.
-scoresClump ({3, 4, 5}) → истинной -scoresClump ({3, 4, 6}) → ложно -scoresClump ({1, 3, 5, 5}) → истинная Это тестовые массивы –
выход не как ожидалось значение .. ?? Я думаю, вам может понадобиться scores.length-2 .. –
вы можете попробовать код на этом [ссылка] (http://codingbat.com/prob/p194530) –