一个长度不小于2自然数数组A[m, m+1, m+2… n],包含一些连续的自然数,但是其中有且仅有一个自然数丢失了
一个长度不小于2自然数数组A[m, m+1, m+2… n],包含一些连续的自然数,但是其中有且仅有一个自然数丢失了,请你找出那个丢失的自然数。比如[10,11,12,13,15],丢失的自然数是14。如果没丢失比如[1,2,3,4,5],那么就返回-1。
Java: int findMissing(int[] a)
class Find
{
int n=0;
int data=0;
public int findMissing(int[] number){
int len=number.length;
if ((number[len-1]-number[0]+1)==len)
{
data=-1;
}else{
while (n<len) //确保所有的数组元素都有比较
{
if (number[0]+n==number[n]) //将此位置的正确值与当前实际值作比较
{
n++;
}else{
data=number[0]+n;
n=len; //让n满足条件,退出while循环
}
}
}
return data;
}
}
public class FindMissingDemo
{
public static void main(String args[])
{
Find f=new Find();
int num[]={10,11,12,14,15,16,19,20};
System.out.println(f.findMissing(num));
}
}
这是我写的程序,虽然目的达到了,但是感觉很渣!求大神指导一下