在我被要求解决的问题中,我使用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]是否可以,如果头部的值大于最后一个值怎么办?