Pessoal, levando em consideração o código abaixo
public class Recursao
{
/**
* Find the largest item in an array of integers.
* Assume the array contains at least one item.
*
* @param numbers an array of integers
* @return the largest number in the array of intgers
*/
public static int largestArrayItem(int [] numbers)
{
return largestArrayItemAuxiliary(numbers, 0);
}
/**
* The helper method for largestArrayItem.
*
* @param numbers an array of integers
* @param index the current index in the array to examine
* @return the largest number in the array of integers
*/
private static int largestArrayItemAuxiliary(int [] numbers, int index)
{
}
}
Como eu posso modificar largestArrayItemAuxiliary para achar o maior valor no array numbers usando recursividade sem mudar ou adicionar os parâmetros de entrada?
Eu conseguir resolver criando uma variável mas a solução correta não é criando uma variável, no máximo apenas uma local na função.
Aqui o código q fiz até agora.
int aux = 0;
private static int largestArrayItemAuxiliary(int [] numbers, int index)
{
if( index == numbers.length )
{
return numbers[aux];
}
else
{
if(numbers[index]>numbers[aux])
{
aux = index;
return largestArrayItemAuxiliary(numbers,index+1);
}
else
{
return largestArrayItemAuxiliary(numbers,index+1);
}
}
}
Alguém teria uma ideia, acredito que deve ser algo bem simples mas estou tão esgotado tentando que não consigo achar outra solução, sempre é melhor ter a opinião de outros. 