Я делаю проблему на codingbat.com и смущен тем, почему это решение проблемы не дает ошибки индекса за пределами границ. Не будет ли первый поиск цикла для индекса, который превышает длину переданного массива?Почему не за пределами ошибки для цикла for (Java)
Вот проблема:
Мы скажем, что значение «везде» в массиве, если для каждой пары соседних элементов в массиве, по меньшей мере, один из пары является то, что значение. Возвращает true, если заданное значение имеет всюду в массиве.
Вот мой рабочий раствор:
public boolean isEverywhere(int[] nums, int val) {
boolean flag1 = true;
boolean flag2 = true;
for (int i = 0; i < nums.length; i += 2) {
if (nums[i] != val) flag1 = false;
}
for (int i = 0; i < nums.length - 1; i += 2) {
if (nums[i + 1] != val) flag2 = false;
}
return flag1 || flag2;
}
Спасибо!
Я не уверен, что вы спрашиваете, но вы, кажется, неправильно понимаете, что 'i
, поскольку вы стоите только на один меньше, чем' nums.length - 1', затем 'nums [i + 1] 'будет ОК –
Кстати, вам нужна только одна петля для проверки позиций' i' и 'i + 1' –