文章目录
1.一个整形数组里除了一个数字外,其余数字都出现了2次,如何找出这个数?
1.1 双重循环法
顾名思义,我们可以使用双重循环,找出那个唯一出现一次的数字
public class Test {
public static void main(String[] args) {
int [] arr = new int[]{
1,1,2,3,3,4,4,2,5};
System.out.println(num(arr));
}
private static int num(int[] arr) {
for(int i = 0 ; i < arr.length ;i++){
int count = 0;
for(int j = 0 ; j < arr.length;j++){
if(arr[i] == arr[j] && i!=j){
count++;
}
}
if(count == 0){
return arr[i];
}
}
return -1;
}
}
这种方法时间复杂度为 O(n2)
1.2 先排序后遍历
我们可以先对数组排序,然后从第一个数字开始遍历,比较两个相邻的数,从而找出这个只出现1次的数字
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
int [] arr = new int[]{
1,1,