javaは配列の中で一回だけの数字を探します。

2612 ワード

タイトル:
               ,           。                 。 
アルゴリズムは以下の通りです
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 map = new HashMap();
        for(int i=0;i<array.length;i++){
            Set keys = map.keySet();
            if(keys.contains(array[i])){
                map.remove(array[i]);
            }else{
                map.put(array[i],1);
            }
        }
        Set 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];
    }
}