Java最大函数递归
我不熟悉递归,你能告诉我为什么这个函数的输出是=3吗
public class Rekursion2 {
public static void main(String[] args) {
int[] arr = {6,1,2,3,1,100,76};
System.out.println(maximum(arr,3));
}
static int maximum(int[] arr, int i) {
int max = 0;
if(i < 0 || i > arr.length) {
return max;
}
if(arr[i] > max) max=arr[i];
maximum(arr, i-1);
return max;
}
}
# 1 楼答案
执行
maximum
,索引为3
3
在数组的边界内,因此该方法不会在此时停止arr[3]
是3
(第四个元素),比max
(0)大,所以max
将被分配给3
在此之后,递归调用该方法,但它不会更改任何内容(您不会对返回值执行任何操作)
最后,返回
max
(3)