首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

高手!求高手,帮解释一下题啊该怎么解决

2012-05-06 
高手!求高手,帮解释一下题啊int array[]{0,34,67,90,21,-9,98,1000,-78}System.out.println(new CTest()

高手!求高手,帮解释一下题啊
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,可以比较下一个,自个那笔比划比划

热点排行