有一个包含N个Integer的向量(vector).它包含的Integer可以是 1 到 N + 1 之间任何一个,但是互不相同,也就是说vector 中不包含任何重复的值,以为有N个对象并且可能得值有 N + 1 个,所以有个一值没有包含在这个vector中,请编程,找到这个vector中没有包含的那个整数( 注意:只可以使用Vector.get(),Vector.getSize() );
【1】public int find(Vector<Integer> v){
int n = v.size();
int result = 0;
for(int i=1;i<=n+1;i++){
boolean isExist = false;
for(int j=0;j<n;j++){
if(i == v.get(j)){
isExist = true;
break;
}
}
if(isExist == false){
result = i;
break;
}
}
return result; //返回0 证明传入的参数不符合规定或N+1个值都包含在vector中
}
【2】
public int find(Vector<Integer> v){
int sum = 0, size = v.getSize();
int n = ((size + 1)*(1 + size + 1))/2; //等差为1的求和公式
for(int i=0; i<size; i++) {
sum += v.get(i);
}
int missNum = -1;
if(sum > 0)
missNum = n -sum;
return missNum; //返回-1 证明传入的参数不符合规定或N+1个值都包含在vector中
}