java 找出数组中只出现一次的数字

来源:互联网 发布:linux中使用getch 编辑:程序博客网 时间:2024/06/02 19:42

题目:

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

算法如下:

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 void FindNumsAppearOnce(int [] array,int num1[] , int num2[]) {        if(array.length<2){            num1[0] = 0;            num2[0] = 0;            return ;        }        Map<Integer,Integer> map = new HashMap<Integer,Integer>();        for(int i=0;i<array.length;i++){            Set<Integer> keys = map.keySet();            if(keys.contains(array[i])){                map.remove(array[i]);            }else{                map.put(array[i],1);            }        }        Set<Integer> keys = map.keySet();        Iterator iter = keys.iterator();        int[] a = new int[keys.size()];        for(int i=0;iter.hasNext();i++){            a[i] = (int) iter.next();        }        num1[0] = a[0];        num2[0] = a[1];    }}
0 0
原创粉丝点击