私はそれが6ではなく2理由を返しその配列でそれを実行しようとしたときに最高値::indexOfMaxInRangeが間違った番号を返しますか?
public static int indexOfMaxInRange(int[] a, int lowIndex, int highIndex){
if((highIndex - lowIndex) == 0){
return highIndex;
}else if(a[lowIndex] >= a[highIndex]){
return maxInRange(a, lowIndex, highIndex - 1);
}else{
return maxInRange(a, lowIndex + 1, highIndex);
}
}
public static void main(String[] args) {
int[] a = new int[5];
a[0] = 4;
a[1] = 3;
a[2] = 6;
a[3] = 4;
a[4] = 2;
System.out.println(indexOfMaxInRange(a, 0, a.length - 1));
}
メソッドと呼ばれている 'indexOfMaxInRange'を返しますが、それはmaxInRange' – agilob
'から値を返します。 show maxInRange' –
これは動作するはずの 'indexOfMaxInRange'への再帰呼び出しでなければなりません – AxelH