2016-11-09 9 views
-2

質問です:Javaでの再帰別一覧から分を探す

min([34, 98, 5, 32, 73]) 
= min(34, min([98, 5, 32, 73]))     

がここに私のコードです:再帰 などして、リストから分を見つけます。私は、コメントされた行に間違いがあることを理解していますint third。私はこの問題を解決するためのヒントが必要です。

public static int min(List<Integer> u) { 

    int size = u.size(); 

    if (size == 1) { 
     return u.get(0); 
    } else { 

     List<Integer> subList = u.subList(1, size); 
     int first = u.get(0); 
     int second = subList.get(0); 
     int third = Q3.min(subList.subList(size - 1, size)); // problem here 

     int min1 = Math.min(second, third); 
     int min2 = Math.min(min1, first); 
     return min2; 
    } 

私はこのコードを実行した後、私はIndexOutOfBoundsExceptionを取得するので、私は問題は、このライン上だと思います。

+2

「Q3」とは何ですか?私はそれがどこに定義されて表示されません。 – bradimus

+0

'return Math.min(最初、Q3.min(subList)); ' – 4castle

+0

残念です。Q3はクラス名です。 – max

答えて

0

subListのサイズはuのサイズより1小さいので、あなたが上でエラーが発生した行の2番目のパラメータとして(uのサイズである)sizeを使用すべきではありません。