Given an array of integers, every element appears three times except for one. Find that single one.
Note:
Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?
public class Solution { public int singleNumber(int[] A) { HashMap<Integer, Integer> map = new HashMap<>(); int singnum=0; for (int i = 0; i < A.length; i++) { if (map.containsKey(A[i])) { map.put(A[i], map.get(A[i])+1); }else { map.put(A[i],1); } if (map.get(A[i])==3) { map.remove(A[i]); } } for (Integer i : map.keySet()) { singnum=i; } return singnum; } }