递归问题可能很难想象。让我们举个例子:arr = [3,5,1,6] 这是一个相对较小的数组,但仍然不容易想象递归从头到尾是如何工作的。 提示:尽量减少输入的大小。这将使可视化变得容易,并帮助您找到base case。首先决定我们的职能应该做什么。在我们的例子中,它从一个数组中找到最小数。如果我们的函数适用于大小为n的数组,那么它也应该适用于大小为n-1的数组(信念的递归飞跃)。现在我们可以使用它来减少输入的大小,直到我们不能再进一步减少它,这应该为我们提供基本情况。 让我们使用上面的例子:arr = [3,5,1,6] 让我们创建一个函数findMin(arr, start),它接受一个数组和一个开始索引,并返回从开始索引到数组末尾的最小数。 1st Iteration : [3,5,1,6]// arr[start] = 3, If we can somehow find minimum from the remaining array,// then we can compare it with current element and return the minimum of the two.// so our input is now reduced to the remaining array [5,1,6]2nd Iteration : [5,1,6]// arr[s