java 找出陣列中只出現一次的數字
阿新 • • 發佈:2018-12-26
題目:
一個整型數組裡除了兩個數字之外,其他的數字都出現了兩次。請寫程式找出這兩個只出現一次的數字。
演算法如下:
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];
}
}