解決するように求められた質問の 1 つで、for ループを使用して配列の最大値を見つけたので、再帰を使用してそれを見つけようとしましたが、これが私が思いついたものです。
public static int findMax(int[] a, int head, int last) {
int max = 0;
if (head == last) {
return a[head];
} else if (a[head] < a[last]) {
return findMax(a, head + 1, last);
} else {
return a[head];
}
}
したがって、問題なく動作し、最大値を取得しますが、私の質問は次のとおりです。基本ケースのリターン a[head] と、ヘッドの値が > 最後の値の場合は大丈夫ですか?