package offer;
/**
* 递归的方法查找重复的数字
*
*/
public class FindDuplicate4 {
public static void main(String[] args) {
int numbers[] = {0,1,2,3,4,4,6,7};//数组中的数 大小从0 到 numbers.length-1
System.out.println(findDuplicate(numbers,0));
}
static int findDuplicate(int numbers[],int index)
{
if(numbers==null || index<0 ||index>=numbers.length)
return -1;
if(index==numbers.length-1 && countNumberInRange(numbers,numbers[index])==1)
return -1;
else if(countNumberInRange(numbers,numbers[index])>1)
return numbers[index];
return findDuplicate(numbers,index+1);
}
//计算数组中数字numbers[index]从下标index的位置到结束的出现个数
static int countNumberInRange(int numbers[],int index)
{
int count=0;
for(int i=index;i<numbers.length;i++)
{
if(numbers[index]==numbers[i])
count++;
}
return count;
}
}
java 实现递归查找数组中的重复数字
最新推荐文章于 2022-08-18 23:03:22 发布