1. 程式人生 > >java 找出陣列中只出現一次的數字

java 找出陣列中只出現一次的數字

題目:

一個整型數組裡除了兩個數字之外,其他的數字都出現了兩次。請寫程式找出這兩個只出現一次的數字。 

演算法如下:

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]; } }