递归方法求最小值?

时间:2020-04-03 22:24:33

标签: java

对于这种递归方法,我有一种无可挑剔的算法,可以找到整数ArrayList的最小值,我在伪代码中运行了几次,它应该能完美工作。

public static int findMin(ArrayList<Integer> numbers)
    {
        if(numbers.size() == 1)
        {
            return numbers.get(0);
        }
        else
        {
            if(numbers.get(0) >= numbers.get(1))
            {
                numbers.remove(0);
                numbers.trimToSize();
                findMin(numbers);
            }
            else
            {
                numbers.remove(1);
                numbers.trimToSize();
                findMin(numbers);
            } 
        }
        return Integer.MIN_VALUE;

它首先确定数组的大小,如果为1,则该方法应返回该元素。如果不是,它将确定前两个中的哪个较大,并删除该一个。如果它们相同,它将删除第一个。我有

return Integer.MIN_VALUE;

可以确保方法返回值。

奇怪的是我改变了事实

return numbers.get(0);

return numbers.get(-1);

查看是否曾经满足第一个条件,并且抛出了一个异常,如果不满足该条件则不会发生。我只是对哪里出了问题感到困惑。

0 个答案:

没有答案
相关问题