Если вам нужно возвращать несколько индексов вам нужно нечто большее, чем Int. В зависимости от того, как вы планируете обрабатывать данные впоследствии, я бы предложил либо вернуть массив , либо String, а затем передать это значение другому методу обработки.
Я предлагаю разбивать проблему на две части, сначала находить и подсчитывать количество экземпляров максимального значения, а затем захватывать индексы максимальных значений. Если вы хотите вернуть индексы в массив, вам нужно будет выполнить его дважды (это использование стандартных массивов, а не ArrayLists, которые расширяемы). Если вы хотите вернуть индексы в виде строки, вам нужно сделать только один проход.
public static int[] methodname3(int d[]) {
int largest = d[0] - 1; // this makes sure that negative values are checked
int instances = 0;
int[] indices = null;
for (int i = 0; i < d.length; i++){
if (d[i] > largest){
largest = d[i];
instances = 1;
}
else if(d[i] == largest){
instances++;
}
}
indices = new int[instances];
for(int i = 0, j = 0; i < d.length; i++){
if(d[i] == largest){
indices[j] = i;
j++;
}
}
return indices;
}
Если вы хотите, чтобы вернуть показатели в виде строки вы могли бы сделать все вещи в один проход, как это:
public static String methodname3(int d[]){
int largest = d[0] - 1;
String indices = "";
for (int i = 0; i < d.length; i++){
if (d[i] > largest){
largest = d[i];
indices = i; // This resets the String each time a larger value is found
}
else if(d[i] == largest){
indices = indices + " " + i;
// This results in a space delimited String of indices
}
}
return indices;
}
Какой язык это? –
Как насчет чисел, все отрицательные ... возможно, начиная с наибольшего значения в Integer.MIN_VALUE было бы хорошей идеей ... – pjp
'индексы максимальных значений' Сколько максимальных значений может быть там, если они все одинаковы? – Prateek