数组中只出现一次的数字

问题描述

一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。

思路分析

核心思想就是如果数组中元素是第一次出现,则加入集合中,继续往后遍历,如果包含该元素,则删除那个元素,最后通过筛选只剩下出现一次的元素了

码上有戏

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//num1,num2分别为长度为1的数组。传出参数
//将num1[0],num2[0]设置为返回结果
import java.util.List;
import java.util.ArrayList;
public class Solution {
public void FindNumsAppearOnce(int [] array,int num1[] , int num2[]) {
ArrayList<Integer> list=new ArrayList<Integer>();
for(int i=0;i<array.length;i++){
if(list.contains(array[i])){
list.remove((Integer)array[i]);
}else{
list.add(array[i]);
}
}
num1[0]=list.get(0);
num2[0]=list.get(1);
}
}

热评文章