Цель этого метода - вернуть позицию (индекс индекса) самого большого элемента в массиве (не его значение, а его позицию) , Если одно и то же максимальное значение появляется в массиве более одного раза, оно должно возвращать позицию первого или самого раннего. Если массив не имеет элементов, он должен просто вернуть -1.Понимание логики этого метода, чтобы найти положение самого большого элемента в массиве
Решение:
public static int maxPos(int[] arr) {
int pos = 0;
if(arr.length > 0) {
for(int i = 0; i < arr.length; i++) {
if(arr[i] > arr[pos]) {
pos = i;
} else {
pos = - 1;
}
}
return pos;
}
Я понимаю создание фиктивной переменной «поз», чтобы представить индекс позиции максимального значения массива. И имея контрольную точку с if (arr.length> 0), продолжайте. И для цикла для просеивания по всему массиву, проверяющему один за другим, индекс которого имеет наибольшее числовое значение и после каждой итерации либо переставляет фиктивную переменную, либо переносит дальше. Часть, где я теряюсь, - это использование вещей внутри массива [], это меня отбрасывает. Я не думаю, что нигде в java нет таких обозначений. Например, с arrayList не будет просто nameOfAL. получить(); Итак, эквивалент этого для массива использует []? Меня немного смущает arr [i]> arr [pos]. Можно ли сказать, что когда мы находимся в i-м индексе в цикле for, мы можем использовать arr [] и поместить что-то внутри этого поля, и когда мы это сделаем, выведем значение этого индекса. Итак, в любое время, когда мы помещаем что-то в этот массив, он всегда будет выводить позицию индекса? заключается в том, что цель помещать вещи в поле []? он выведет значение того, что помещено в его скобки. следующая часть, которая меня смущает, почему pos = i? Я понимаю, что если if-statement терпит неудачу, то else - 1. но зачем возвращать pos; после каждой итерации?
Спасибо
Итак, ваш вопрос в том, что вы не понимаете обозначения для доступа к n-му элементу массива? См. [Этот учебник по Java] (https://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html) – dramzy
Я подозреваю, что возвращение должно находиться за закрывающей скобкой 'for'. –
Вы пробовали этот метод? Это не работает. – Kahler