как вернуть массив int в функции

#arrays #search #return

#массивы #Поиск #Возврат

Вопрос:

 public int[] twoSum(int[] nums, int target) {
        
        for(int i = 0;i < nums.length;i  ) {
            for(int j = 0; j < nums.length;j  ) {
                if(i != j amp;amp; nums[i]   nums[j] == target) {
                    int[] arr = new int[] {i,j};
                    return arr[];
                }
            }
            
        }
        
    }
 

Часть (return arr[];) выдает ошибку. Можете ли вы объяснить мне, почему? Спасибо.

Комментарии:

1. Класс<arr[]> не может быть преобразован в тип —- это ошибка

Ответ №1:

Когда вы объявляете массив целых чисел, вы используете синтаксис

 int[] arr;
 

С этого момента к массиву (или, скорее, к указателю на массив) можно получить доступ через arr , а к n-му элементу вашего массива, если он существует, можно получить доступ через arr[n-1] . Синтаксис arr[] недопустим и был бы излишним, поскольку are уже является массивом. Попробуйте вернуть просто arr

Ошибка, по-видимому, возникает из-за того, что вы пытаетесь вернуть массив, элементы которого должны иметь тип arr . Такой класс не определен, и даже если бы он был, такой массив еще не был объявлен.