到目前为止我有这个,我只需要从参数给出的任何索引值开始,我将如何添加它。
public static int maxElement(int[] a, int i){
if (i > 0) {
return Math.max(a[i], maxElement(a, i-1));
}
else {
return a[0];
}
}
答案 0 :(得分:2)
(不包括代码,因为它非常简单)
如果您需要从索引i
搜索max元素到数组的末尾
1)使用i
作为开始索引,如@pbabcdefp指示
2)在递归检查中使用数组长度,而不是零
3)在递归调用中递增i
4)当到达数组末尾时,回到i
- 元素
它是
答案 1 :(得分:1)
public static int maxIndex(int i, int[] a){
if(i == a.length - 1) return a.length - 1;
int j = maxIndex(i+1, a);
if(a[i] > a[j])
return i;
return j;
}
使用它:
System.out.println(a[maxIndex(0, a)]);
答案 2 :(得分:1)
public static int maxElement(int[] a, int i) {
if (i < a.length - 1) {
return Math.max(a[i], maxElement(a, i+1));
} else {
return a[a.length - 1];
}
}
前进,调整边界,你就完成了。
答案 3 :(得分:0)
public static int maxElement(int[] array, int index){
//check all elements from index
if (index >= 0 && index < array.length - 1) {
return Math.max(array[index], maxElement(array, index+1));
}
// return last element
return array[array.length -1];
}
答案 4 :(得分:0)
maxElement方法:
public static int maxElement(int[] a, int i) throws IndexOutOfLenght{
if (i > a.length-1 || i < 0)
throw new IndexOutOfLenght();
else{
if (i == a.length-1)
return a[i];
else
return Math.max(a[i], maxElement(a, i+1));
}
}
主:
public static void main(String[] args) throws IndexOutOfLenght {
int[] array = {1,2,3,4,5,6};
System.out.println(maxElement(array,1));
}
异常类:
public class IndexOutOfLenght extends Exception {
IndexOutOfLenght() {
super("IndexOutOfLenght ");
}
}