Одним из возможных решений является создание метода, который получает массив со значениями -1 и последним значением. Затем проверьте, больше ли следующий последний элемент, чем тот, который у вас есть, или нет, если это так, новым значением является текущий максимум, удалите его и вызовите тот же метод, используя новый массив (со удаленным значением) и текущий максимум .
Базовый случай будет, когда в массиве будет только один элемент, возьмите или сравните его с последним максимальным значением, которое вы передали в recuerdo, будет función и вернете большее значение из этих двух. Последнее будет максимальным рекурсивным способом.
У меня нет возможности сейчас написать код, но в метакоде это должно быть что-то вроде
private int finalMax
public void maxRecursive(arrayList<int>List, Int tempMax){
//Base case
Int newTempMax = tempMax
If (tempMax >list.get(list.size-1)){
newTempMax=list.get(list.size()-1)
}
If (list.size()>1){
List.remove(list.size()-1)
maxRecursive(list, newTemMax)
}else{
finalMax=newTempMax
}
}
Как я уже сказал это не что иное, как псевдокод, который выглядит адаптированным к java, сейчас я не могу ничего лучше, но я думаю, что вы можете получить Идею отсюда.
Best!