第一种:
先将数组排序,首先判断1和100是否存在,不存在则直接输出;若存在,再遍历数组,相邻之间元素相减,值为2则说明中间缺一个值,且值为较小值加1
import java.util.Arrays;
public class test {
//1-100中的99个数(不重复)用a[99]存储,找出没存进去的那个数值
public static void Search(int[] array ) {
Arrays.sort(array);
//如果第一个数是2,则说明1没存进去
if(array[0] == 2) {
System.out.println(1);
}
//如果最后一个数是99,则说明100没存进去
if(array[98] == 99) {
System.out.println(100);
}
for(int i=0;i<array.length-1;i++) {
if(array[i+1] - array[i] == 2) {
System.out.println(array[i] + 1);
}
}
}
//测试
public static void main(String[] args) {
//定义一个1-100中缺少50的数组
int[] array = new int[99];
for(int i=0;i<49;i++) {
array[i] = i+1;
}
for(int i=50;i<100;i++) {
array[i-1] = i+1;
}
Search(array);
}
}
输出结果: