高手!求高手,帮解释一下题啊该怎么解决
高手!求高手,帮解释一下题啊
int array[]={0,34,67,90,21,-9,98,1000,-78};
System.out.println(new CTest().findMax(array, 0));
}
public int findMax(int array[],int index)
{
if(array==null || array.length==0)
{
return 0;
}
int max=array[0];
if(index<array.length-1)
{
max=findMax(array,index+1); //帮我解释一下这几个if语句。详细点啊
}
if(max<array[index])
max= array[index];
return max;
------解决方案--------------------
public int findMax(int array[],int index)
{
if(array==null || array.length==0)//检查数组是否存在,是否有元素
{
return 0;
}
int max=array[0];
if(index<array.length-1) //检查是否已经遍历完数组
{
max=findMax(array,index+1); //递归
}
if(max<array[index]) //在数组中发现新的最大值
max= array[index]; //替换最大值
return max;
------解决方案--------------------
有递归算法实现的一个查找数组中的最大值
------解决方案--------------------
实际就是递归求一个数组的最大值
那个if的说明如下:
int array[]={0,34,67,90,21,-9,98,1000,-78};
System.out.println(new CTest().findMax(array, 0));
}
public int findMax(int array[],int index)
{
if(array==null || array.length==0)
{
return 0;
}
int max=array[0];
if(index<array.length-1)
{
max=findMax(array,index+1); //帮我解释一下这几个if语句。详细点啊
}
if(max<array[index])
max= array[index];
return max;
------解决方案--------------------
public int findMax(int array[],int index)
{
if(array==null || array.length==0)//检查数组是否存在,是否有元素
{
return 0;
}
int max=array[0];
if(index<array.length-1) //检查是否已经遍历完数组
{
max=findMax(array,index+1); //递归
}
if(max<array[index]) //在数组中发现新的最大值
max= array[index]; //替换最大值
return max;
------解决方案--------------------
有递归算法实现的一个查找数组中的最大值
------解决方案--------------------
实际就是递归求一个数组的最大值
那个if的说明如下:
- Java code
int array[]={0,34,67,90,21,-9,98,1000,-78}; // System.out.println(new CTest().findMax(array, 0)); // } public int findMax(int array[],int index) { if(array==null || array.length==0) { return 0; } int max=array[0]; /** * 这个if语句表示如果index小于数组长度-1 ,也就是<=array.length-2 * 就递归调用(自己调用自己)findMax方法,此时他给的参数是index+1。 * 和if条件组合起来,说明数组下标就是0到array.length-1,这样就不会出现数组下标越界的异常。 * 简单的说,被程序定义的array数组,length为9,那他的index范围就是0~8,如果是array[9]就不行了。 */ if(index<array.length-1) { max=findMax(array,index+1); } if(max<array[index]) max= array[index]; return max;
------解决方案--------------------
就是以递归,index+1,可以比较下一个,自个那笔比划比划