数组中只出现一次的数字

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组中只出现一次的数字相关的知识,希望对你有一定的参考价值。


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

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

//num1,num2分别为长度为1的数组。传出参数
//将num1[0],num2[0]设置为返回结果
public class Solution {
    public static void FindNumsAppearOnce(int [] array,int num1[] , int num2[]) {
        Map<Integer, Integer> map = new HashMap<Integer, Integer>();
        
        //System.out.println(map.get(array[1]));
        int k;
        for(int a : array){
        	if(map.get(a) == null){
        		map.put(a, 1); 
        	}else{
        		k = map.get(a);
        		map.put(a, ++k);
        	}
        }

        //遍历map
        int[] num = new int[2];
        int i = 0;
        Set<Integer> keySet = map.keySet();
		//有了Set集合。就可以获取其迭代器。
		Iterator<Integer> it = keySet.iterator();
		while(it.hasNext())
		{
			Integer key = it.next();
			//有了键可以通过map集合的get方法获取其对应的值。
			Integer value  = map.get(key);
			if(value == 1){
				num[i] = key;
				//System.out.println("num[" + i + "]" + "=" + num[i]);
				i++;
			}
		}
		num1[0] = num[0];
		num2[0] = num[1];
    }
}


本文出自 “秦斌的博客” 博客,谢绝转载!

以上是关于数组中只出现一次的数字的主要内容,如果未能解决你的问题,请参考以下文章

剑指Offer 数组中只出现一次的数字

剑指offer:数组中只出现一次的数字

数组中只出现一次的数字

求数组中只出现一次的两个数字

数组中只出现一次的数字(数组中唯一只出现一次的数字)

剑指OFFER 数组中只出现一次的数字