[英]Find the nearest largest number to a given number in an array using java
[英]Java - Find largest number in array using recursion
我正在嘗試使用遞歸來查找數組中的最大數,但沒有得到我希望的結果。 任何幫助將不勝感激。
public class ArrayMax {
public static int largestInteger(int[] array) {
return FindlargestInteger(array, 0, -99999999);
}
public static int FindlargestInteger(int[] array, int index, int max) {
if (index == array.length)
return max;
if (array[index] > max) {
max = array[index];
}
FindlargestInteger(array, index + 1, max);
return max;
}
}
您需要return
對該函數的調用,以便您的函數進行遞歸。
return FindlargestInteger(array, index + 1,max);
public static int FindlargestInteger(int[] array, int index,int max){
if(index == array.length)
return max;
if (array[index] > max){
max = array[index];
}
return FindlargestInteger(array, index + 1,max);
}
您的FindlargestInteger
方法當前不會遞歸。 您首先需要從一個基本案例開始; 如果您在數組的末尾,則返回最后一個元素; 否則返回當前索引處的最大元素或遞歸的結果。 而且,您不需要將max
傳遞給函數。 你可以用類似1 的東西來做,
public static int FindlargestInteger(int[] array, int index) {
if (index < array.length - 1) {
return Math.max(array[index], FindlargestInteger(array, index + 1));
}
return array[array.length - 1];
}
如果目標不是遞歸,並且您使用的是 Java 8+,那么您也可以使用IntStream
類的單行方法來實現它
return IntStream.of(array).max();
1請遵循Java方法命名約定,方法名稱應以小寫字母開頭。 按原樣,您的方法看起來像一個構造函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.