以下のコードが ではなく -1 を返すのはなぜarr.length-1
ですか? find()
メソッドが 24 を探している場合は5 を返すはずですが、-1 を返すようになりました。n が arr に見つからない場合は、-1 のみを返す必要があります。
public class linearArraySearch {
public static void main(String[] args) {
int[] numbers = new int[]{ 12, 42, 56, 7, 99, 24, 6, 1, 5 };
System.out.println( find(numbers, 24) );
}
public static int find( int[] arr, int n ){
if( arr[arr.length-1] == n ){
return arr.length-1;
}else if( arr.length > 1 && arr[arr.length-1] != n ){
int[] temp = new int[arr.length-1];
for( int i = 0; i < temp.length; i++ ){
temp[i] = arr[i];
}
find( temp, n );
}
return -1;
}
}