Método recursivo para Encontrar e retornar o maior elemento de um array

Boa noite a todos, estava hoje a tentar implementar a seguinte questão : Criar um método recursivo que recebesse um array de inteiros e retornasse o maior elemento deste array.

O que se passou foi, que eu criei o método funcional, porem ele pede como parâmetro de entrada o tamanho do array e o array, o que eu gostaria era que o método recebesse apenas o array como parâmetro de entrada.

[code] public int retornarElementoMaxRecursivo (int a, int b[]) {

	if (a == 1){
      return b[0];
   } else {
      
      int x = retornarElementoMaxRecursivo (a-1, b);
      if (x > b[a-1]){
         return x;
      }else{
         return b[a-1]; 
      }
      }
      
}[/code]

Dessa forma ele funciona e realmente retorna o elemento max do array, mais como eu disse acima, gostaria de receber apenas o Array de inteiros como parâmetro.

Quem poder me da uma luz de como fazer isso fico grato o/

Cara, o que você pode fazer nesse caso é criar uma sobrecarga que receba apenas o array como o ponto de entrada da recursão:

public int retornarElementoMaxRecursivo (int b[]) {
    return retornarElementoMaxRecursivo (b.length, b);
}

private int retornarElementoMaxRecursivo (int a, int b[]) {
    if (a == 1){
        return b[0];
    } else {   
        int x = retornarElementoMaxRecursivo (a-1, b);

        if (x > b[a-1]){
            return x;
        }else{
            return b[a-1]; 
        }
    }	      
}

Realmente dessa forma feita você faz o pedido, mais não teria outra forma de fazer o mesmo só que sem usar overloading?