netbeans 如何在java中通过递归得到最小数

myzjeezk  于 2022-11-10  发布在  Java
关注(0)|答案(2)|浏览(143)

我在我的java代码中有一些错误..我试图通过递归找到最小数..我在最后一个索引中的错误..我注意到如果最后一个索引中的最小数我会得到错误消息“java.lang.ArrayIndexOutOfBoundsException:8”。否则,如果最小值不在最后一个索引中,则返回数组中找到的第一个最小值,并且从不检查其他值。
这是我的代码:

public static int minimumElement(int [] nums,int i){      
    if (i < nums.length && nums[i] < nums[i+1] )
        return nums[i];
    else
        return minimumElement(nums, i=i+1);
  }

产出
image of first minimum number found in the array
image of minimum number in last index

fzwojiic

fzwojiic1#

if (i < nums.length && nums[i] < nums[i+1] )
    return nums[i];

假设nums.length = 20i = 19,那么nums[19 + 1]将是nums中的第21个元素,它不可能存在于数组中,因此会出现错误。

sxpgvts3

sxpgvts32#

我找到了答案。

//int mini = nums[0];  "I wrote it in main"
 public static int minimumElement(int [] nums,int mini, int i){
    if (i >= nums.length-1)
        return mini;
    if (mini > nums[i+1] )
        mini = nums[i+1];
    return minimumElement(nums, mini, i=i+1);
}

相关问题